我有十个数据帧,我想根据id和pnum将它们加起来。做这个的最好方式是什么?谢谢
df1-df1的示例
id pnum v1 v2 v3... v144
111 1 1 0 0 ... 0
111 2 1 1 0 ...0
121 1 1 1 0 ...0
123 2 1 1 0 ...0
123 1 1 1 0 ...0
df3 -example of df3
id pnum v1 v2 v3... v144
111 1 0 0 0 ... 0
111 2 0 0 0 ...1
121 1 0 0 0 ...1
123 2 0 0 0 ...0
123 1 0 0 0 ...1
...
df10 -example of df10
id pnum v1 v2 v3... v144
111 1 0 0 0 ... 0
111 2 0 1 0 ...1
121 1 0 0 1 ...1
123 2 0 1 0 ...0
123 1 0 0 0 ...1
答案 0 :(得分:0)
我们可以使用list
在mget
中获得数据集,使用bind_rows
将数据集行绑定到单个数据集,并按'id','pnum'分组,汇总所有列(summarise_all
)返回每个组的sum
library(dplyr)
mget(paste0('df', 1:10)) %>%
bind_rows %>%
group_by(id, pnum) %>%
summarise_all(sum)
答案 1 :(得分:0)
在数据帧列表中考虑rbind
,然后运行aggregate
df_list <- list(df1, df2, df3, ..., df10)
master_df <- do.call(rbind, df_list)
agg_df <- aggregate(. ~ ID + pnum, master_df, sum)