Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对R中的整洁数据执行MANOVA_R_Tidyverse_Manova - Fatal编程技术网

对R中的整洁数据执行MANOVA

对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

我试图在一个整洁的数据框上执行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的最佳方式是什么?我感兴趣的是自变量之间的相互作用,以及它们如何影响这三个问题的“价值”。如果相关,我的实际数据集有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)