r语言 - 对数据帧列表运行 for 循环,并为每个输出保存单独的 CSV?



我有多个数据帧,需要每周计算每个数据帧的平均值和标准误差,并另存为 csv。

在这种情况下,我知道"for 循环"正在工作,因为我总是得到 df3 的 tempdf。我很难为每个 df 创建和命名单独的 csv(例如 Curated_df1.csv、Curated_df2.csv、Curated_df3.csv(。

library(plyr)
list = list (df1, df2, df3)
for (x in list){
tempdf = ddply (x, c("week"),
N = lenght (variable),
mean = mean (variable),
SD = sd (variable),
SE = sd/ sqrt(N))
tempname = paste ("Curated_", x, ".csv", sep = "")
write.csv (tempdf, tempname, na="")
}

当你做paste ("Curated_", x, ".csv", sep = "")时,它不起作用,因为x是一个data.frame,而不是一个字符对象。如果列表中的每个元素都有一个名称,则可以使用purrr中的iwalk,并使用.y引用列表元素的名称,.x引用列表元素。下面我创建一个列表,其中每个元素都被命名并使用iwalk

library(plyr)
my_list = list(name1 = df1, 
name2 = df2, 
name3 = df3)
library(purrr)
iwalk(my_list, ~{
tempdf = ddply (.x, c("week"),
N = lenght (variable),
mean = mean (variable),
SD = sd (variable),
SE = sd/ sqrt(N))
tempname = paste ("Curated_", .y, ".csv", sep = "")
write.csv (tempdf, tempname, na="")
})

最新更新