Меня интересуют четыре последовательности чисел:
Clockwise
1->2
2->3
3->4
4->1
Counterclockwise
1->4
4->3
3->2
2->1
Opposite
1->3
3->1
2->4
4->2
Repeat
1->1
2->2
3->3
4->4
Я хочу подсчитать, сколько раз каждая из этих групп последовательностей встречается в столбце Choice
моих данных для каждого Person
.
Вот мои данные:
df <- structure(list(Time = 1:28, Person = c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L), Choice = c(1L, 2L, 1L, 2L, 1L, 1L, 3L,
4L, 1L, 4L, 4L, 1L, 1L, 1L, 4L, 4L, 3L, 4L, 1L, 4L, 2L, 3L, 1L,
4L, 4L, 1L, 1L, 4L)), class = "data.frame", row.names = c(NA,
-28L))
В этом наборе данных, глядя на строку 1 -> строку 2считается Clockwise
, поэтому один счет добавляется к Clockwise
для персоны 1. строка 2 -> строка 3 равна Counterclockwise
и т. д.
Как можно добиться этого без записи if-else для каждогои все условия?
Ожидаемый результат