对R中的整洁数据执行MANOVA
我试图在一个整洁的数据框上执行MANOVA,看起来有点像下面这样。“id”指参与者编号。自变量为“init_cont”(值为I或K)和“family”(值为C、S或D),适用于2x3设计。“qnumber”列是指参与者回答的问题数量,每个参与者回答3个问题。“价值”是每个参与者对特定问题的回答对R中的整洁数据执行MANOVA,r,tidyverse,manova,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
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的最佳方式是什么?我感兴趣的是自变量之间的相互作用,以及它们如何影响这三个问题的“价值”。如果相关,我的实际数据集有14个不同的问题
我考虑过用以下格式重新组织数据,但我不确定如何在R中这样做。每个新列中“value”后的数字来自“qnumber”
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)
t这里有两个问题。第一个(如何最好地执行MANOVA)更适合交叉验证:。我强烈建议你去那里问问曼诺瓦的情况,你会得到很好的答案。分散不起作用。它不会像这里显示的那样为每个id创建一行。这个问题概括了我在“spread”中遇到的问题:@melbez,它与您提供的数据集一起工作,除非您没有提供足够的信息让我们复制您的问题。确保在使用spread
之前,您对每个分组都进行了ungroup()
加密。
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)