如何使用 dplyr 根据求和来折叠 R 中的数据帧行?
要使用 dplyr 包根据求和折叠数据帧行,我们可以使用 dplyr 包的 summarise_all 函数。例如,如果我们有一个名为 df 的数据帧,其中有一个 Group 分类列和一个数字列,则可以通过使用命令来根据求和折叠行 −
df%>%group_by(Group)%>%summarise_all(funs(sum))
考虑以下数据帧 −
示例
Group<-sample(LETTERS[1:6],25,replace=TRUE) Response<-rnorm(25,3,0.24) df1<-data.frame(Group,Response) df1
输出
Group Response 1 F 2.920793 2 C 2.898450 3 C 3.347825 4 A 3.174100 5 B 3.089882 6 C 2.918084 7 D 3.274836 8 F 2.709450 9 F 3.349442 10 F 2.995712 11 C 3.081089 12 A 3.123781 13 C 2.947828 14 C 3.096281 15 E 2.990183 16 E 3.061462 17 C 3.279717 18 C 2.932549 19 F 2.772635 20 B 2.993549 21 F 2.956203 22 E 2.920117 23 F 3.244469 24 F 3.376968 25 B 3.072305
加载 dplyr 包并根据 Group 列对 df1 的行求和 −
示例
library(dplyr) df1%>%group_by(Group)%>%summarise_all(funs(sum)) # A tibble: 6 x 2
输出
Group Response <chr> <dbl> 1 A 6.30 2 B 9.16 3 C 24.5 4 D 3.27 5 E 8.97 6 F 24.3
示例
Region<-sample(c("Asia","Oceania","Africa","America"),25,replace=TRUE) Y<-rpois(25,5) df2<-data.frame(Region,Y) df2
输出
Region Y 1 Asia 2 2 America 4 3 Africa 4 4 Oceania 5 5 America 6 6 Asia 5 7 Oceania 9 8 Asia 4 9 Asia 4 10 America 5 11 Oceania 2 12 Africa 6 13 Asia 4 14 Oceania 7 15 Africa 7 16 America 2 17 Asia 5 18 Africa 2 19 America 3 20 Oceania 3 21 Oceania 4 22 Africa 5 23 Africa 5 24 Africa 5 25 America 6
根据 Region 列对 df2 的行求和 −
示例
df2%>%group_by(Region)%>%summarise_all(funs(sum)) # A tibble: 4 x 2
输出
Region Y <chr> <int> 1 Africa 34 2 America 26 3 Asia 24 4 Oceania 30
广告