【发布时间】:2018-02-10 13:21:02
【问题描述】:
我在 R 的列表中有几个数据框。我想总结的每个 DF 中都有条目。我正在尝试进入 lapply,所以这将是我的首选方式(尽管如果有更好的解决方案,我很乐意知道它以及为什么)。
我的样本数据:
df1 <- data.frame(Count = c(1,2,3), ID = c("A","A","C"))
df2 <- data.frame(Count = c(1,1,2), ID = c("C","B","C"))
dfList <- list(df1,df2)
> head(dfList)
[[1]]
Count ID
1 1 A
2 2 A
3 3 C
[[2]]
Count ID
1 1 C
2 1 B
3 2 C
我试图用 lapply 来实现这个
dfList_agg<-lapply(dfList, function(i) {
aggregate(i[[1:length(i)]][1L], by=list(names(i[[1:length(i)]][2L])), FUN=sum)
})
但是这给了我一个错误“参数必须具有相同的长度”。我做错了什么?
我想要的输出是“ID”列“计数”的总和,如下所示:
>head(dfList_agg)
[[1]]
Count ID
1 3 A
2 3 C
[[2]]
Count ID
1 3 C
2 1 B
【问题讨论】: