我想计算列中的行数input如果值小于当前行(请参阅下面想要的结果)。对我来说,问题是条件基于当前行值,因此它与条件是固定数字的一般情况有很大不同。
data <- data.frame(input = c(1,1,1,1,2,2,3,5,5,5,5,6))
input
1 1
2 1
3 1
4 1
5 2
6 2
7 3
8 5
9 5
10 5
11 5
12 6
我期望得到的结果是这样的。例如,对于观测值 5 和 6(值为 2),有 4 个观测值的值 1 小于其值 2。因此count给定值为 4。
input count
1 1 0
2 1 0
3 1 0
4 1 0
5 2 4
6 2 4
7 3 6
8 5 7
9 5 7
10 5 7
11 5 7
12 6 11
编辑:当我处理分组数据时dplyr
,我希望得到的最终结果如下,即我希望每个组内的条件是动态的。
data <- data.frame(id = c(1,1,2,2,2,3,3,4,4,4,4,4),
input = c(1,1,1,1,2,2,3,5,5,5,5,6),
count=c(0,0,0,0,2,0,1,0,0,0,0,4))
id input count
1 1 1 0
2 1 1 0
3 2 1 0
4 2 1 0
5 2 2 2
6 3 2 0
7 3 3 1
8 4 5 0
9 4 5 0
10 4 5 0
11 4 5 0
12 4 6 4