У меня есть следующий фрейм данных, описывающий прогрессирование чего-либо от текущего состояния («0») до 5 лет спустя.
df = structure(list(Prog0to1 = c("different", "different", "same",
"different", "disappeared", "different", "same", "same", "different",
"different"), Prog1to2 = c("disappeared", "disappeared", "disappeared",
"different", "different", "different", "different", "same", "same",
"Deceased"), Prog2to3 = c("disappeared", "different", "disappeared",
"same", "disappeared", "same", "different", "different", "disappeared",
"Deceased"), Prog3to4 = c("different", "same", "disappeared",
"same", "disappeared", "same", "disappeared", "same", "disappeared",
"Deceased"), Prog4to5 = c("same", "same", "disappeared", "different",
"disappeared", "different", "disappeared", "same", "disappeared",
"Deceased")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-10L))
в df "то же самое" означает, что состояние предыдущего года совпадает с текущим годом.
Я бы хотел посчитать, для каждого ряда, сколько раз был один и тот же "подряд", и если есть два таких периода, возьмите медиану того, сколько раз "один и тот же" появлялся последовательно.
Таким образом, выходной вектор должен быть:
v = c(1, 2, 1, 2, 0, 2, 1, 2, 1, 0),
где 8-е значение - это медиана между 2 и 2, то есть 2 (есть два периода "одного и того же", разделенных "разными").
Как мне этого добиться?