专栏首页优雅RTidyFriday 每天 5 分钟,轻轻松松上手 R 语言(六)数据读取与保存

TidyFriday 每天 5 分钟,轻轻松松上手 R 语言(六)数据读取与保存

今天我们来看如何在 R 中读取和保存数据。

工作目录

我们最先要了解的是我们的工作目录,当文件在当前目录下时我们输入文件名即可, 没有在当前目录我们就要输入数据文件的绝对路径。

# 获取工作目录
getwd()

# 设置工作目录
setwd('home/Rstudio')

读取数据

R 中的 read.table() 可以方便的读取表格类的数据文件,针对数据本身的特点, 又有几个可用的变体,如read.csv(), read.csv2(), read.delim() ,read.delim2()等。

那这几个函数分别适用哪些情况呢?

  • read.csv(): 读取数据“,”分割的 csv 文件
  • read.csv2(): 读取 “,” 作为小数点“;”作为分割符的文件
  • read.delim(): 读取 Tab 作为分割符的 txt 文件,默认情况“.”作为小数点
  • read.delim2(): 读取 Tab 作为分割符的文件,默认情况“,”作为小数点。

接下来我们具体看下如何用这些函数读取 txt 或者 csv 文件

# 读取普通表格数据
read.table(file, header = FALSE, sep = "", dec = ".")

# 读取逗号分割的 csv
read.csv(file, header = TRUE, sep = ",", dec = ".", ...)

# 读取;作为分割符的 csv
read.csv2(file, header = TRUE, sep = ";", dec = ",", ...)

# 读取 Tab 分割的数据
read.delim(file, header = TRUE, sep = "\t", dec = ".", ...)
read.delim2(file, header = TRUE, sep = "\t", dec = ",", ...)

「file」: 数据文件路径

「sep」: 分割符

「header」: 是否有表头

「dec」: 小数点的标识

  • 读取本地文件
# 读取当前目录下的"mtcars.txt"
my_data <- read.delim("mtcars.txt")
my_data <- read.csv("mtcars.csv")

# 通过对话框选择文件读取
my_data <- read.delim(file.choose())
my_data <- read.csv(file.choose())

  • 读取网络文件
# read.table read.csv 也可以读取网络文件
my_data <- read.delim("http://www.sthda.com/upload/boxplot_format.txt")

保存单个对象到单个文件

# 保存单个对象
saveRDS(my_data, file = "my_data.rds")

# 读取保存的 rds 格式文件
readRDS(file = "my_data.rds")

保存多个对象到单个文件

有时我们需要同时保存工作空间的多个文件,这时我们可以直接用 save 方法

# 保存为 RData 格式
save(data1, file = "data.RData")

# 保存多个对象到 RData 格式
save(data1, data2, file = "data.RData")

# 将数据重新加载回来
load("data.RData")

保存和加载整个工作空间

有时我们工作空间有大量画好的图,或者处理好的数据对象,一个个保存显然不是好的办法,这时我们可以 用 save.image() 保存整个工作空间,需要的时候再 load 回来:

# 保存
save.image(file = "my_work_space.RData")

# 重新加载
load("my_work_space.RData")

关于数据读写我们今天就说到这里吧,后面遇到具体情况,我们还会有针对性讲解, 百闻不如一练,赶紧打开你的 Rstudio 练习一下吧!

本文分享自微信公众号 - 优雅R(elegant-r)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「R」绘制分组排序点图

    我在看过的一些 Nature 文章和 COSMIC 数据库中看到用点图来展示不同癌症类型下 TMB 的分布差异。在 R 包中,我有看到过 maftools 中可...

    王诗翔呀
  • 「Geek-r」数据导入

    在掌握一定的 R 编程技能后,我们开始迈入数据分析的殿堂。大部分数据分析事务的数据都不是通过 R 创建,而是来自于各种数据收集软硬件、渠道,包括 Excel、网...

    王诗翔呀
  • 图说|新抗原与基因组不稳定性对免疫表型和免疫治疗反应的影响

    我们的基因组在细胞分裂前被复制的保真度,随着时间的推移是惊人的一致性。这种一致性是由多种酶促DNA复制、校对和损伤修复功能共同作用的结果,这些功能共同作用于从一...

    王诗翔呀
  • Confluence 6 创建一个项目空间 原

    火星移民小组的程序需要一个地方能够调出他们任务的相关关键信息和资源,你的任务就是帮助他们实现和管理这个需求。这部分是比较容易实现的,因为这些信息需要让空间项目组...

    HoneyMoose
  • Python--读取csv文件的整列

    明天依旧可好
  • Python对CSV文件的处理

    在接口自动化测试中,把测试的数据存储到csv的文件也是一种很不错的选择,下面就详细的介绍如何实现CSV文件内容的读取和如何把数据写入到CSV的文...

    无涯WuYa
  • 如何揭开Linux中的命名空间和容器的神秘面纱

    集装箱已经席卷全球了。听到这个术语时,无论您想到Kubernetes,Docker,CoreOS,Silverblue还是Flatpak,很明显,现代应用程序都...

    王欣壳
  • 如何揭开Linux中的命名空间和容器的神秘面纱【Containers】

    容器已经席卷全球了。听到这个术语时,无论您想到Kubernetes,Docker,CoreOS,Silverblue还是Flatpak,很明显,现代应用程序都在...

    王欣壳
  • PHP采集原理

    很多时间我们的信息都是来自其他网站,这样我们复制,粘贴,发布很麻烦,当然你不可以把他们的信息批量复制过来,这个时候就需要采集了~~ 采集就是使用file_get...

    苦咖啡
  • [PHP] 使用php生成下载csv文件

    单元格内容用英文逗号分隔, 其中为了防止乱码,汉字部分会进行一个转码操作,从utf8转为gbk

    陶士涵

扫码关注云+社区

领取腾讯云代金券