Допустим, я хочу посчитать количество правильных или неправильных ответов подряд. Если вы посмотрите на столбец «считать», я очень этого хочу, но я хочу, чтобы он начинался с одного раза при каждом изменении с правильного на неправильное и наоборот. Я также хочу, чтобы он запускался снова по одному при каждом изменении условия или модуля.
Я обнаружил, что должно быть два решения этой проблемы ... однако в моем случае они не работают. Вот один из них: Количество операций в группах в кадре данных . Я считаю, что это не работает, потому что мне также нужно сгруппировать по условию_идентификатора, который равен цифре c и всего 1,2,3,4,5 ... вплоть до конца последовательности.
Большое спасибо!
dat%>%
group_by(pid, module, condition)%>%
arrange(pid, module, condition, condition_id)%>%
mutate(num.correct = ifelse(timing == "correct", 1, 0))%>%
group_by(pid, module, condition, num.correct)%>%
mutate(count = seq(n()))
dput:
structure(list(pid = c("ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001",
"ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001",
"ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001", "ADMIN-UCSF-bo001",
"ADMIN-UCSF-bo001"), grade = c("3", "3", "3", "3", "3", "3",
"3", "3", "3", "3", "3"), gender = c("F", "F", "F", "F", "F",
"F", "F", "F", "F", "F", "F"), Teacher = c("Keith, Susan", "Keith, Susan",
"Keith, Susan", "Keith, Susan", "Keith, Susan", "Keith, Susan",
"Keith, Susan", "Keith, Susan", "Keith, Susan", "Keith, Susan",
"Keith, Susan"), module = c("BOXED", "BOXED", "BOXED", "BOXED",
"BOXED", "BOXED", "BOXED", "BOXED", "BOXED", "BOXED", "BOXED"
), condition = c("Conjunction_4", "Conjunction_4", "Conjunction_4",
"Conjunction_4", "Conjunction_4", "Conjunction_4", "Conjunction_4",
"Conjunction_4", "Conjunction_4", "Conjunction_4", "Conjunction_4"
), trial_id = c(65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75),
condition_id = c(15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25), correct_button = c("correct", "correct", "correct",
"incorrect", "incorrect", "incorrect", "incorrect", "incorrect",
"correct", "incorrect", "correct"), rt = c(660.721957683563,
728.28596830368, 509.469985961914, 744.082987308502, 843.548953533173,
1161.27300262451, 961.09801530838, 928.547024726868, 711.355030536652,
710.889995098114, 877.265989780426), rw = c(1160, 1080, 920,
600, 640, 680, 760, 920, 1240, 1230, 1270), last = c(1270,
1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270
), time = c("2017-04-07", "2017-04-07", "2017-04-07", "2017-04-07",
"2017-04-07", "2017-04-07", "2017-04-07", "2017-04-07", "2017-04-07",
"2017-04-07", "2017-04-07"), timing = c("correct", "correct",
"correct", "incorrect", "incorrect", "incorrect", "incorrect",
"incorrect", "correct", "incorrect", "correct")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -11L))