技术问询:长表经group_by聚合后,汇总指定列并获取其他列全值统计结果
按分组变量汇总多分类变量的存在计数
需求:对长表中的Presence列进行汇总,先按Site列执行分组操作(group_by()),同时获取Exotic、Migrant等变量各取值对应的Presence汇总值。
测试数据
library(tidyverse) set.seed(123) Site <- str_c("S", 1:5) Species <- str_c("Sps", 1:6) print(Species_tbl <- bind_cols(Species = Species, Exotic = rbinom(length(Species), 1, .3), Migrant = rbinom(length(Species), 2, .3))) Data_tbl <- expand.grid(Site = Site, Species = Species) %>% left_join(Species_tbl) Data_tbl$Presence <- rbinom(nrow(Data_tbl), 1, .5)
尝试的实现代码
print(Data_tbl %>% group_by(Site) %>% summarise(N_sp = sum(Presence), N_sp_Exo = sum(Presence[Exotic == 1]), N_sp_Nat = sum(Presence[Exotic == 0]), N_sp_M0 = sum(Presence[Migrant == 0]), N_sp_M1 = sum(Presence[Migrant == 1]), N_sp_M2 = sum(Presence[Migrant == 2])))
内容的提问来源于stack exchange,提问作者mferreira
相关产品推荐
相关产品推荐

