运行重复测量ANOVA并命名输出
RM_test <- ezANOVA(data=test_data, dv=var_test, wid = .(subject),
within = .(water_year), type = 3)
我使用str(RM_test)
查看了命名对象的内部结构,并收到以下内容:
List of 3
$ ANOVA :List of 3
..$ ANOVA :'data.frame': 1 obs. of 7 variables:
.. ..$ Effect: chr "water_year"
.. ..$ DFn : num 2
.. ..$ DFd : num 22
.. ..$ F : num 26.8
.. ..$ p : num 1.26e-06
.. ..$ p<.05 : chr "*"
.. ..$ ges : num 0.531
..$ Mauchly's Test for Sphericity:'data.frame': 1 obs. of 4 variables:
.. ..$ Effect: chr "water_year"
.. ..$ W : num 0.875
.. ..$ p : num 0.512
.. ..$ p<.05 : chr ""
..$ Sphericity Corrections :'data.frame': 1 obs. of 7 variables:
.. ..$ Effect : chr "water_year"
.. ..$ GGe : num 0.889
.. ..$ p[GG] : num 4.26e-06
.. ..$ p[GG]<.05: chr "*"
.. ..$ HFe : num 1.05
.. ..$ p[HF] : num 1.26e-06
.. ..$ p[HF]<.05: chr "*"
$ Mauchly's Test for Sphericity:'data.frame': 1 obs. of 4 variables:
..$ Effect: chr "wtr_yr"
..$ W : num 0.875
..$ p : num 0.512
..$ p<.05 : chr ""
$ Sphericity Corrections :'data.frame': 1 obs. of 7 variables:
..$ Effect : chr "wtr_yr"
..$ GGe : num 0.889
..$ p[GG] : num 4.26e-06
..$ p[GG]<.05: chr "*"
..$ HFe : num 1.05
..$ p[HF] : num 1.26e-06
..$ p[HF]<.05: chr "*"
我能够使用F
从第一个数据框中提取第四个变量RM_test[[1]][[4]][1]
,但无法弄清楚如何从数据框{{1}中提取第三个变量p[GG]
}。此数据框出现两次,因此提取任何一个都可以。
有关如何使用括号中的数字和名称进行此操作的建议将不胜感激。
答案 0 :(得分:2)
问题似乎是你不知道如何提取列表元素。正如您所说,有两个Sphericity Corrections
数据框,因此我将如何获取两者的p[GG]
值。
使用括号中的数字
对于第一个,我们RM_test[[1]][[3]][[3]]
。您可以一步一步地理解它:
x1 <- RM_test[[1]]; str(x1)
x2 <- x1[[3]]; str(x2)
x3 <- x2[[3]]; str(x3)
对于第二个,请RM_test[[3]][[3]]
。
使用括号中的名称
我们可以使用名称,而不是使用数字进行索引。首先,做
RM_test[["ANOVA"]][["Sphericity Corrections"]][["p[GG]"]]
对于第二个,请执行
RM_test[["Sphericity Corrections"]][["p[GG]"]]
使用$
对于第一个,请执行
RM_test$ANOVA$"Sphericity Corrections"$"p[GG]"
对于第二个,请执行
RM_test$"Sphericity Corrections"$"p[GG]"
请注意在必要时使用引用""
。