Выполнение MANOVA на приборных данных в R - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь выполнить MANOVA на аккуратном кадре данных, который выглядит примерно так: «id» относится к номеру участника. Независимыми переменными являются «init_cont» (со значениями I или K) и «family» (со значениями C, S или D), что соответствует дизайну 2x3. Колонка «qnumber» относится к количеству ответов участников вопроса, причем каждый участник отвечает на 3 вопроса. «значение» - это ответ каждого участника на конкретный вопрос.

id  init_cont  family  qnumber  value
1   I          C       1        3.5
1   I          C       2        2
1   I          C       3        4
2   K          C       1        2
2   K          C       2        5
2   K          C       3        3
3   K          S       1        4.5
3   K          S       2        5
3   K          S       3        3
4   K          D       1        1
4   K          D       2        7.5
4   K          D       3        3

Как мне лучше всего выполнить МАНОВУ на этих данных? Меня интересует взаимодействие между независимыми переменными и как они влияют на «ценность» для каждого из 3 вопросов. Если это актуально, у моего фактического набора данных есть 14 разных вопросов.

Я рассмотрел вопрос реорганизации данных в следующем формате, но я не уверен, как это сделать в R. Числа после «значения» в каждом новом столбце взяты из «qnumber».

id  init_cont  family  value1  value2  value3
1   I          C       3.5     2       4
2   K          C       2       5       3
3   K          S       4.5     5       3
4   K          D       1       7.5     3

1 Ответ

0 голосов
/ 27 апреля 2018

dplyr::spread легко решает первую часть вашей проблемы.

df %>% spread(qnumber, value)
#   id init_cont family   1   2 3
# 1  1         I      C 3.5 2.0 4
# 2  2         K      C 2.0 5.0 3
# 3  3         K      S 4.5 5.0 3
# 4  4         K      D 1.0 7.5 3

Вот воспроизводимые данные.

t <- 'id  init_cont  family  qnumber  value
1   I          C       1        3.5
1   I          C       2        2
1   I          C       3        4
2   K          C       1        2
2   K          C       2        5
2   K          C       3        3
3   K          S       1        4.5
3   K          S       2        5
3   K          S       3        3
4   K          D       1        1
4   K          D       2        7.5
4   K          D       3        3'

df <- read.table(text = t, header = TRUE)
...