【发布时间】:2017-11-07 21:41:43
【问题描述】:
我有数千个包含这些信息的.csv 文件:
Year HS
1956 1.098
1956 1.785
1956 0.987
....
2012 1.341
我应该做的是:
- 找到每个文件每年的最大 HS
- 编写数千个单独的
.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 名称。对这个问题有什么建议吗?
谢谢。
【问题讨论】:
标签: r loops csv dataframe datalist