У меня есть фрейм данных с двумя столбцами, «CaseID» и «Event», и я хочу знать, как часто за Event с ID = X следует Event с ID = Y.Но меня интересуют только последовательные события с одним и тем же CaseID.
Команда
df <- data.frame(CaseID = c(1,1,1,2,2,2,3,3,3),
Event = c("A","B","C","A","B","D","B","C","E"))
df
table(df[1:nrow(df) -1, 2], df[2:nrow(df), 2])
приводит к
CaseID Event
1 1 A
2 1 B
3 1 C
4 2 A
5 2 B
6 2 D
7 3 B
8 3 C
9 3 E
A B C D E
A 0 2 0 0 0
B 0 0 2 1 0
C 1 0 0 0 1
D 0 1 0 0 0
E 0 0 0 0 0
C -> A и D -> Bимеют разные CaseID и должны быть 0, поэтому я ищу:
B C D E
A 2 0 0 0
B 0 2 1 0
C 0 0 0 1
D 0 0 0 0
E 0 0 0 0
Есть ли какой-нибудь элегантный способ добавить условие в команду таблицы, основанное на двух последовательных строках?
Бен