对 R 中的整洁数据执行 MANOVA

Performing MANOVA on tidy data in R

我正在尝试对看起来有点像下图的整洁数据框执行多元方差分析。 "id" 指参会人数。自变量是 "init_cont"(值为 I 或 K)和 "family"(值为 C、S 或 D),构成 2x3 设计。 "qnumber"栏是参与者回答问题的数量,每个参与者回答3个问题。 "value" 是每个参与者对特定问题的回答。

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 个问题中每个问题的 "value" 感兴趣。如果相关,我的实际数据集有 14 个不同的问题。

我考虑过按以下格式重新组织数据,但我不确定如何在 R 中执行此操作。每个新列中 "value" 之后的数字来自 "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

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)