我在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)
})
然而,这给了我一个错误“参数必须具有相同的长度” . 我究竟做错了什么?
我想要的输出是列“Count”和“ID”的总和,如下所示:
>head(dfList_agg)
[[1]]
Count ID
1 3 A
2 3 C
[[2]]
Count ID
1 3 C
2 1 B
4 回答
tidyverse
的选项将是我认为你过于复杂了 . 试试这个...
这是第三种选择
我想这就是你需要的