在R中对整洁数据执行MANOVA

时间:2018-04-27 02:41:37

标签: r tidyverse manova

我正在尝试在整洁的数据框架上执行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中执行此操作。" 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

1 个答案:

答案 0 :(得分:2)

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)

这是可重复的数据。

{{1}}