科研星球

R语言统计与绘图:从R中导出各种数据文件格式

今天来学习下怎么从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时会自动加载工作空间。

翻译资料

  1. http://www.sthda.com/english/wiki/exporting-data-from-r


没有账号?