今天来学习下怎么从R中导出数据,这个是R语言基本功。
1. 使用R基础函数导出数据
1.1 导出txt文件
导出txt文件可以使用write.table函数。
# 加载数据集
data("mtcars")
# 以txt格式导出数据
write.table(mtcars, # 要导出的数据
file = "mtcars.txt", # 指定导出数据的文件名称和格式
sep = "\t", # 字段分隔符
row.names = TRUE, # 逻辑词,是否将行名一起导出
col.names = NA) # 逻辑词,是否将列名一起导出
如果不需要导出行名,可以使用row.names = FALSE。
write.table(mtcars, file = "mtcars.txt",
sep = "\t",
row.names = FALSE)
1.2 导出csv文件
导出csv文件可以使用write.csv()和write.csv2()函数。
# 使用`.`作为小数点,使用`,`作为分隔符。
write.csv(my_data, file = "my_data.csv")
# 使用`,`作为小数点,使用`;`作为分隔符
write.csv2(my_data, file = "my_data.csv")
# my_data 为要导出的数据
2. 使用readr包导出(推荐)
可以使用readr包的write_csv()和write_tsv()函数来导出数据,readr包是Hadley Wickham大神开发的,专门用来快速写入和导出数据。
install.packages("readr") # 安装包
library("readr") # 加载R包
data("mtcars") # 加载数据集
# 导出txt文件,使用`\t`作为分隔符;
write_tsv(mtcars, path = "mtcars.txt")
# 导出csv文件,使用`,`作为分隔符;
write_csv(mtcars, path = "mtcars.csv")
3. xlsx包导出xls或xlsx文件(推荐)
可以使用xlsx包来导出xls或xlsx文件。
install.packages("xlsx") # 安装R包
library("xlsx") # 加载R包
# 在Excel文件中写入第一个工作表
write.xlsx(USArrests, # 要导出的数据
file = "myworkbook.xlsx", # 导出的文件路径和名称格式
sheetName = "USA-ARRESTS", # sheet表名称
append = FALSE)
# 在Excel文件中写入第二个工作表
write.xlsx(mtcars,
file = "myworkbook.xlsx",
sheetName="MTCARS", # sheet表名称,和前面的命名不一样
append=TRUE) # 逻辑词,将导出的数据文件添加到现有Excel文件中
# 在Excel文件中写入第三个工作表
write.xlsx(iris,
file = "myworkbook.xlsx",
sheetName="IRIS",
append=TRUE)
col.names, row.names # 逻辑词,指定行名和列名是否写入文件
4. 保存为RDATA格式
在前面导出的数据文件中,我们不能够保存导出数据的结构格式,比如说数字型、字符型、因子型等这些信息是不能保存的,再导入进来就要重新设置,因此我们可以将数据保存为RDATA格式。
可以使用saveRDS()函数保存单个数据对象,然后使用readRDS()函数再重新读取数据。
# 保存对象
saveRDS(mtcars, file = "mtcars.rds")
# 读取对象
my_data <- readRDS(file = "mtcars.rds")
上面是保存单个数据对象,也可以一次保存多个数据对象。
使用save()函数来保存多个数据对象,使用load()函数来加载数据。
# 保存多个数据对象
save(data1, data2, file = "data.RData")
# 加载数据
load("data.RData")
也可以使用save.image()函数保存整个工作空间。
save.image(file = "my_work_space.RData")
load("my_work_space.RData")
这个在关闭R或RStudio时会询问是否保存工作空间,如果选择保存,在下次启动R时会自动加载工作空间。
翻译资料
http://www.sthda.com/english/wiki/exporting-data-from-r