将环境中的数据帧写入单独的 csv 文件

ham*_*mal 2 csv r export-to-csv rstudio

我正在尝试使用下面的代码将 R 环境中的所有数据集导出到单独的 csv 文件中。

出于某种原因,导出的数据集是空的。

files <- ls()
pattern <- ".csv"

for (i in 1:length(files)) {
  write.csv(files[i], paste(files[i], pattern, sep = ""))
}
Run Code Online (Sandbox Code Playgroud)

小智 5

这里的问题是ls()返回环境中对象的名称,而不是对象本身。这意味着您的循环试图将单个字符串导出为 csv 文件。

要解决此问题,您需要使用mget()以下方法:

files <- mget(ls())

for (i in 1:length(files)){
  write.csv(files[[i]], paste(names(files[i]), ".csv", sep = ""))
}
Run Code Online (Sandbox Code Playgroud)

注意:您需要注意使用[[i]][i]正确的方法。