我有数千个.csv
个文件,其中包含以下信息:
Year HS
1956 1.098
1956 1.785
1956 0.987
....
2012 1.341
我应该做的是:
.csv
文件,其中包含第1点的信息到目前为止(也在本论坛的帮助中),我用这个脚本列出了第1点的数千个数据帧:
temp <- Sys.glob("*.csv")
ag <- lapply(temp, function(f)
aggregate(HS ~ Year, read.table(f, header = TRUE, sep = ";"), max))
列表如下所示:
[[1]]
Year HS
1 1956 2.172
2 1957 1.831
3 1958 1.713
.....
56 2011 2.332
57 2012 2.917
[[2]]
Year HS
1 1956 2.111
2 1957 1.864
3 1958 1.135
.....
56 2011 1.032
57 2012 2.341
.....
until thousands dataframes
我正在尝试通过应用这些脚本来编写这些列表中的.csv
文件:
temp <- Sys.glob("*.csv")
ag <- lapply(temp, function(f)
aggregate(HS ~ Year, read.table(f, header = TRUE, sep = ";"), max))
for(i in 1:length(ag)){
write.csv(ag[i],file="out[i].csv")
}
但它只创建out[i].csv
,其中包含ag
我也在尝试这个剧本:
temp <- Sys.glob("*.csv")
ag <- lapply(temp, function(f)
aggregate(HS ~ Year, read.table(f, header = TRUE, sep = ";"), max))
lapply(ag, function(a)
write.csv(a, file="out[a].csv"))
同样,它只创建out[a].csv
,其中包含ag
的第一个数据帧的信息。
似乎我无法将循环设置为“调用”列表中的数据帧并创建顺序输出.csv
名称。这个问题有什么建议吗?
谢谢。
答案 0 :(得分:2)
尝试
write.csv(ag[i],file=sprintf("out%d.csv",i))
或
write.csv(ag[i],file=paste0("out",i,".csv"))
我不确定你是否想在文件名中加上方括号。我会反对它。