tidyverse中的大幅面摘要

时间:2019-03-22 17:49:35

标签: r aggregate tidyverse summary summarize

您好,我有一个按Site分组的宽格式数据框。每列代表不同物种的丰度(总共85个)。我正在尝试汇总数据框,以计算个人总数,而不考虑数据中的物种。

df.totals<- df %>% group_by(Site) %>% summarize (total = sum(6:91))

1 个答案:

答案 0 :(得分:1)

我们可以gather转换为“长”格式,然后执行sum

library(tidyverse)
df %>% 
   select(Site, 6:91) %>%
   rownames_to_column("rn") %>% 
   gather(key, val, - Site, -rn) %>% 
   group_by(Site, rn) %>% 
   summarise(total  = sum(val))

或没有gather的其他选项将会是

df %>% 
   select(Site, 6:91) %>% 
   transmute(vs, Sum = reduce(.[2:ncol(.)], `+`)) %>%
   group_by(Site) %>% 
   summarise(Sum = sum(Sum))

使用带有mtcars的可复制示例

mtcars %>% 
   select(vs, 4:6) %>% 
   transmute(vs, Sum = reduce(.[2:ncol(.)], `+`)) %>% 
   group_by(vs) %>% 
   summarise(Sum = sum(Sum))