尝试根据以前的分组进行条件汇总。遇到麻烦了。有条件地在dplyr中进行汇总/变异
我想根据哪些是在类型r1,由f分组后总结amt列。
重复性代码:
s <- sample(c('one', 'two'), 96, replace = TRUE)
f <- sample(c('a','s','d','f'), 96, replace = TRUE)
r1_amt <- runif(96, 1, 100)
r2_amt <- runif(96, 1, 100)
r3_amt <- runif(96, 1, 100)
x <- data_frame(s, f, r1_amt, r2_amt, r3_amt)
smy <- x %>%
group_by(f) %>%
summarise(n = n(), # population in each f group
num_r1 = sum(r1_amt >= 50)) # amount of r1 in each f group
我试过.[r1_amt >= 50]$amt
,cumsum(r1_amt >= 50)
,sum(ifelse(r1_amt >= 50, r1_amt, 0))
但一直没能拿出的分组编号。
因此,1给定的行可以是r1的60,r2的40,r3的55,并且如果有意义的话,它应该被包括在仅用于r1和r3的总计数量列中。
什么是你期望的输出? – Psidom
我调整了可重现的例子,因为我没有把它做得相当正确。如果在r1_amt中有超过50个,我想将给定的观察分类为r1。然后sum_r1_amt列应该是r1_amt的总和,只有当观察值大于50时。 –
@MattW。如果你想改变你的问题,请问另一个作为跟进。 16小时后回来并编辑您的问题并不专业。修改我的答案以解决您的新问题并不困难,但我会将其留给您,或者其他答案。 – Masoud