有没有一种方法可以根据柱的位置系统地划分柱? 例如,数据框如下所示:
df <- data.frame(id = ('a1', 'a2'), a = c(1, 0), b = c(4,0), c = c(4, 3), d = c(5, 10))
a | b | c | d |
---|---|---|---|
1 | 4 | 4 | 5 |
0 | 0 | 3 | 10 |
我想要得到:
a | b | c | d | div_c | div_b | div_a |
---|---|---|---|---|---|---|
1 | 4 | 4 | 5 | 0.8 | 1 | 0.25 |
0 | 0 | 3 | 10 | 0.3 | 0 | NaN |
换句话说,从最后一列开始作为分子,前一列作为分子,直到第一列是分子. 我知道我可以做到
df %>% mutate(div_c = c/d, div_b = b/c, div_a = a/b)
但是,我的列比上面的示例多得多,所以我想知道是否有更好的方法来完成这项工作,而不是输入每个新的计算.
我try 了变异和交叉,但这只有在操作/功能是一致的而不是移动的目标时才有效.
提前谢谢您!