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

Write data frames in environment into separate csv files

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

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

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

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

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

要解决此问题,您需要使用 mget(),如下所示:

files <- mget(ls())

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

注意:您需要注意正确使用 [[i]][i]