Я хотел бы преобразовать широкие данные в длинные данные в R, и мой набор данных предназначен для моделей с перекрестной классификацией, исследующих ответы участников на каждый целевой элемент, имеющий различные характеристики.
![enter image description here](https://i.stack.imgur.com/7mggb.png)
condition
- это одно из двух условий, на которые были назначены участники. - Участники были протестированы дважды:
t1
и t2
. - Что касается переменных-предикторов уровня элемента, то кодируются
x1
и x2
. - Что касается
response
, был ли закодирован ответ участников на элемент правильно или неправильно. - были введены два формата
test
, test1
и test2
.
Несмотря на то, что существует множество учебных пособий для широкого и длинного преобразования, я не смог найти одно, специально объясняющее преобразование для перекрестно классифицированных моделей.
Я хотел бы использовать tidyverse
, если это возможно, для согласованности.
Мой пример данных следующий:
structure(list(item_name = c("x1", "x2", "participant_id", "1",
"2", "3", "4", "5", "6", "7"), participant_variable_1 = c(NA,
NA, NA, 20, 23, 21, 20, 19, 22, 30), condition = c(NA, NA, NA,
"A", "B", "A", "B", "A", "B", "A"), t1.item1.test1 = c(1, 3,
NA, 0, 1, 0, 1, 0, 0, 1), t1.item2.test1 = c(2, 2, NA, 0, 0,
0, 1, 1, 0, 1), t1.item3.test1 = c(1, 3, NA, 0, 0, 0, 1, 0, 0,
0), t1.item4.test1 = c(3, 1, NA, 1, 0, 0, 0, 1, 1, 0), t2.item1.test1 = c(1,
3, NA, 0, 1, 1, 0, 1, 1, 1), t2.item2.test1 = c(2, 2, NA, 1,
0, 1, 0, 1, 0, 1), t2.item3.test1 = c(1, 3, NA, 0, 0, 0, 1, 0,
0, 0), t2.item4.test1 = c(3, 1, NA, 1, 1, 0, 1, 1, 1, 0), t1.item1.test2 = c(1,
3, NA, 0, 1, 0, 1, 0, 0, 1), t1.item2.test2 = c(2, 2, NA, 0,
0, 0, 1, 1, 0, 1), t1.item3.test2 = c(1, 3, NA, 0, 0, 0, 1, 0,
0, 0), t1.item4.test2 = c(3, 1, NA, 1, 0, 0, 0, 1, 1, 0), t2.item1.test2 = c(1,
3, NA, 0, 1, 1, 0, 1, 1, 1), t2.item2.test2 = c(2, 2, NA, 1,
0, 1, 0, 1, 0, 1), t2.item3.test2 = c(1, 3, NA, 0, 0, 0, 1, 0,
0, 0), t2.item4.test2 = c(3, 1, NA, 1, 1, 0, 1, 1, 1, 0)), row.names = c(NA,
-10L), class = c("tbl_df", "tbl", "data.frame"))
Я хотел бы иметьдлинные данные, которые выглядят следующим образом:
![enter image description here](https://i.stack.imgur.com/M3bU7.png)
Пожалуйста, и спасибо за ваше руководство!