我有以下数据框,并想计算组内所有行(“id”)的“toSum”列的总和,其中另一列(“index”)的值小于当前行。
id <- c("A", "A", "A", "B", "B", "B")
index <- c(5,7,11,2,5,8)
toSum <- c(0.5,0.4,0.2,0.1,0.9,0.8)
data <- data.frame(id, index, toSum)
ID | 指数 | 总结 |
---|---|---|
一个 | 5 | 0.5 |
一个 | 7 | 0.4 |
一个 | 11 | 0.2 |
乙 | 2 | 0.1 |
乙 | 5 | 0.9 |
乙 | 8 | 0.8 |
我想将结果添加为这样的列:
ID | 指数 | 总结 | 先验和 |
---|---|---|---|
一个 | 5 | 0.5 | 0 |
一个 | 7 | 0.4 | 0.5 |
一个 | 11 | 0.2 | 0.9 |
乙 | 2 | 0.1 | 0 |
乙 | 5 | 0.9 | 0.1 |
乙 | 8 | 0.8 | 1 |
我可以使用以下代码计算组中值较低的行数: data <- data %>% group_by(id) %>% mutate(priorSum = map_int(index, ~ sum(.x > index)))
但是,我无法对不同的变量求和。
非常感谢您的帮助!