尝试根据之前的分组有条件地求和。很难想出它。
在按 f 分组后,我试图根据哪些是 r1 类型来对 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 的总和列中。