R For 循环写入包含数据帧和路径名称列表的 CSV

标签 r for-loop export-to-csv

我正在尝试在 R 中使用数据帧和路径名列表编写一个 for 循环。出于某种原因,第二个数据帧是唯一导出的数据帧。任何帮助将不胜感激。

df1 <- data.frame(num = sample(1:10, 6, replace = TRUE), letter = sample(LETTERS[1:2], 6, replace = 
TRUE))
df2 <- data.frame(num = sample(150:160, 6, replace = TRUE), letter = sample(LETTERS[1:2], 6, replace 
= TRUE))

list_dfs <- list(df1,df2)

paths <- c("C:\\Export\\file1.csv","C:\\Export\\file2.csv")

for (i in 1:length(list_dfs)) {
   for (f in 1:length(paths)) {
    write.csv(list_dfs[i], file = paths[f], row.names = FALSE)
  }
}

最佳答案

这应该有效:

for (i in 1:length(list_dfs)) {
  write.csv(list_dfs[i], file = paths[i], row.names = FALSE)
  }
}

您提供的代码是将 list_dfs[1] 写入 path[1],然后写入 path[2]。接下来是 list_dfs[2]path[1],然后是 path[2],结果是 list_dfs[2] 被写入 path[1]path[2]

如果您想检查 list_dfspath 的长度是否相同,您可以这样做:

for (i in 1:length(list_dfs)) {
  if(length(list_dfs) != length(path)){stop("mismatch in number of data frames and paths")}
  write.csv(list_dfs[i], file = paths[i], row.names = FALSE)
  }
}

最终,如果您想导出每个数据帧一次,则只需要一个 for() 循环。

希望这会有所帮助!

关于R For 循环写入包含数据帧和路径名称列表的 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62270061/

相关文章:

matlab - 避免在双 for 循环中重新计算相同的值

PostgreSQL:如何避免 COPY 命令输出中不需要的字符?

powershell - 如何使用 Export-Csv 将 powershell 的哈希表导出为 CSV 文件?

python - Pandas df 到 csv 插入空行

r - ggplot2:并排的条形图,一个条堆叠,另一个没有

r - doRedis workers 在 windows 上立即关闭

r - 环境问题

java - 初学者 Java Netbeans : How do I display for loop in jlabel?

r - 更改 POSIXlt 对象中元素的顺序并保留类

c++ - RcppParallel 中如何调用自定义函数?