【发布时间】:2019-07-30 03:54:17
【问题描述】:
我希望能够使用条件来过滤 summarise_at 调用中汇总的内容。我知道这可以在直接调用 dplyr:: summarise() 时完成,但我想避免为每个变量指定这个。
我提供了以下代码,认为对 summarise_at 的调用会给我正确的数据。但事实并非如此。我希望代码返回标记为最终数据的数据集。仅当行与过滤条件匹配时,每个人都有一行,每个变量求和。当它不匹配或没有什么可以总结时,我希望它返回 0 或 NA。
Data = tibble(Group = c(1,1,1,1,1,1,1,1),
Week = c(1,2,3,4,1,2,3,4),
Condition = c(1,1,1,0,0,1,1,0),
Var1 = 1:8,
Var2 = 9:16,
Var3 = 17:24)
Data %>%
group_by(Group, Week, Condition) %>%
summarise_at(vars(Var1, Var2, Var3), ~sum(., na.rm = T)) %>%
ungroup()
Final.Data = tibble(Group = c(1,1,1,1),
Week = c(1,2,3,4),
Var1 = c(1,8,10,0),
Var2 = c(9,24,26,0),
Var3 = c(17,40,42,0))
【问题讨论】: