Я бы хотел посчитать строки в столбце 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