1

我正在尝试在看起来有点像以下的整洁数据框上执行 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
4

1 回答 1

2

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)
于 2018-04-27T03:34:15.467 回答