У меня есть результаты теста, взятого несколькими людьми за целых четыре периода времени. Вот образец:
dat <- structure(list(Participant_ID = c("A", "A", "A", "A", "B", "B",
"B", "B", "C", "C", "C", "C"), phase = structure(c(1L, 2L, 3L,
4L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 4L), .Label = c("base", "sixmos",
"twelvemos", "eighteenmos"), class = "factor"), result = c("Negative",
"Negative", "Negative", "Negative", "Negative", "Positive", "Negative",
NA, "Positive", "Indeterminate", "Negative", "Negative")), .Names = c("Participant_ID",
"phase", "result"), row.names = c(1L, 2L, 3L, 4L, 97L, 98L, 99L,
100L, 9L, 10L, 11L, 12L), class = c("cast_df", "data.frame"))
, который выглядит как:
Participant_ID phase result
1 A base Negative
2 A sixmos Negative
3 A twelvemos Negative
4 A eighteenmos Negative
97 B base Negative
98 B sixmos Positive
99 B twelvemos Negative
100 B eighteenmos <NA>
9 C base Positive
10 C sixmos Indeterminate
11 C twelvemos Negative
12 C eighteenmos Negative
Я хотел бы добавить идентификатор к каждому тесту, чтобы отметить, был ли этот тест преобразованием из предыдущего статуса (отрицательный в положительный), реверсией (положительный в отрицательный) или стабильным. Проблема в том, что я не просто сравниваю базовый тест с тестом на шесть месяцев, от шести месяцев до двенадцати месяцев и т. Д. - в случаях, подобных С, тест Sixmos должен быть отмечен как стабильный или неубедительный (точный термин для этого неоднозначный), и (что более важно) тест двенадцати мес следует сравнить с базовым тестом и пометить как реверсию. И наоборот, если у кого-то есть последовательность «Отрицательный», «Неопределенный», «Отрицательный», это должно быть стабильным.
Это последняя часть, на которой я застрял; если бы это была просто последовательность сравнений для каждого участника, я был бы в порядке, но у меня возникли проблемы с размышлениями о том, как элегантно справиться с этими переменными парами сравнения. Ваша помощь, как всегда, высоко ценится.