如何通过不使用dplyr筛选器的分组数据来计算条件计数和平均值?我既不想使用过滤器缩小数据集,也不希望left_join数据集以获得原始大小(加长)数据集。这有可能吗?
以下是一个案例:
%>%滤波器(cyl>4,gear<5) %>% group_by(齿轮,carb,am) %>%突变(avg_mpg=均值(mpg,na.rm = T),cnt =n()
如何在不使用过滤器或left_join的情况下获得上述结果?
发布于 2018-06-25 18:54:00
我们可以将条件创建为逻辑列,并使用它将'mpg‘按组子集以获得mean值,同样地,'cnt’计算为逻辑向量的sum。
mtcars %>%
mutate(ind = cyl > 4 & gear < 5) %>%
group_by(gear, carb, am) %>%
mutate(avg_mpg = mean(mpg[ind], na.rm= TRUE),
cnt = sum(ind)) %>%
select(-ind)注意:创建'ind‘列只是因为我们多次使用这些条件。
https://stackoverflow.com/questions/51030013
复制相似问题