Мне интересно, как я могу обнаружить некоторую строку из фрейма данных R и следующих 2 (или n) ячеек после этой ячейки из той же строки. И после обнаружения моей целью было бы получить индикаторную переменную из этих 3 ячеек.
Намного проще показать, что я имею в виду, приведя пример. Допустим, мой фрейм данных выглядит следующим образом
table <- data.frame( x1 = c(1,4,6,"Y"), x2 = c("Y",1,"Y",5), x3 = c(1,2,5,4),
x4 = c(2,NA,4,"Y"), x5 = c(NA,NA,6,1), x6 = c(NA,NA,1,5))
x1 x2 x3 x4 x5 x6
1 Y 1 2 NA NA
4 1 2 NA NA NA
6 Y 5 4 6 1
Y 5 4 Y 1 5
И целью будет таблица, которая выглядит примерно так
goal_table <- data.frame(Y12 = c(1,0,0,0),Y54 = c(0,0,1,1), Y15 = c(0,0,0,1))
Y12 Y54 Y15
1 0 0
0 0 0
0 1 0
0 1 1
Так как в исходной таблице первая строка содержит ячейку «Y», за которыми следуют «1» и «2», тогда в таблице целей будет столбец «Y12» с индикатором 1 и применяется тот же лог c ко всем двум другим комбинациям чисел, которые идут после «Y».
Некоторая информация, которая может упростить эту задачу: за Y всегда следуют как минимум два числа. Если в строке содержится NA, скажем, x2, то каждый последующий x3, x4, x5, ... также будет NA (как видно из примера). Таблица целей не обязательно должна быть собственной, столбцы можно просто добавить в исходную таблицу.