Выполнение MANOVA на приборных данных в R

Я пытаюсь выполнить 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

Каков наилучший способ для меня выполнить MANOVA на этих данных? Меня интересует взаимодействие между независимыми переменными и то, как они влияют на "ценность" для каждого из 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 ответ

Решение

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)
Другие вопросы по тегам