Допустим, у меня есть 3 столбца. первый столбец user
, данные которого должны быть сгруппированы по нему. каждый user
может иметь несколько session
. У меня есть столбец action
с некоторыми значениями и NA
s, которые я хочу заполнить на основе session
и `` user:
для каждого пользователя, заполняйте столбец action
его значением, пока либо из двух условий:
1 - заполняйте до тех пор, пока не наберете session+1
число. Это означает, что если action == A and session==2
заполнить все NA
значения A
до session
4, включая session
2 и 3.
ИЛИ
2- до достижения нового action
значение в пределах session+1
. В этом случае новое значение начинает заполняться до его session +1
df<-read.table(text="
user session action
1 1 NA
1 1 A
1 1 NA
1 1 B
1 2 NA
1 2 NA
1 3 NA
2 1 AA
2 1 NA
2 1 NA
2 2 NA
2 3 NA
2 4 AA
2 5 NA
2 6 NA
2 7 AA
2 8 NA",header=T, stringsAsFactors = FALSE)
результата: (я выделил затронутые строки)
user session action
1 1 NA
1 1 A
1 1 A <--
1 1 B
1 2 B <--
1 2 B <--
1 3 NA
2 1 AA
2 1 AA <--
2 1 AA <--
2 2 AA <--
2 3 NA
2 4 AA
2 5 AA <--
2 6 NA
2 7 AA
2 8 AA <--