从 r 中的 manova 分析中提取误差矩阵
Extract error matrix from manova analysis in r
我使用 car
包来执行方差分析。在这里,我得到了矩阵形式的误差和因子 (=Site) 的平方和。代码在这里
library(car)
## One-Way MANOVA
anv<-summary(Anova(lm(cbind(Al, Fe, Mg, Ca, Na) ~ Site, data=Pottery)))
anv
现在我想从这个结果中提取这两个矩阵用于下一步分析。我想要的输出是这样的-
>err_ss
Al Fe Mg Ca Na
Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
>Site_ss
Al Fe Mg Ca Na
Al 175.610319 -149.295533 -130.809707 -5.8891637 -5.3722648
Fe -149.295533 134.221616 117.745035 4.8217866 5.3259491
Mg -130.809707 117.745035 103.350527 4.2091613 4.7105458
Ca -5.889164 4.821787 4.209161 0.2047027 0.1547830
Na -5.372265 5.325949 4.710546 0.1547830 0.2582456
使用下面的代码后,我得到了错误矩阵的结果,但我未能提取最后一个。
str(anv)
err_ss<-anv$"SSPE"
> err_ss
Al Fe Mg Ca Na
Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
有人可以帮我做吗?提前致谢。
我们需要根据结构进行提取。如果我们查看 str(anv)
,它是 7 个元素的 list
。 "SSPE"、"SSPH" 元素位于 "multivariate.tests" 的 "Site" 元素之下。所以用 $
或 [[
中的任一个提取它们,然后得到两个矩阵
out <- anv$multivariate.tests$Site[c("SSPE", "SSPH")]
out
#$SSPE
# Al Fe Mg Ca Na
#Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
#Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
#Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
#Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
#Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
#$SSPH
# Al Fe Mg Ca Na
#Al 175.610319 -149.295533 -130.809707 -5.8891637 -5.3722648
#Fe -149.295533 134.221616 117.745035 4.8217866 5.3259491
#Mg -130.809707 117.745035 103.350527 4.2091613 4.7105458
#Ca -5.889164 4.821787 4.209161 0.2047027 0.1547830
#Na -5.372265 5.325949 4.710546 0.1547830 0.2582456
最好将其保存在一个 list
中,而不是拥有多个对象。
我使用 car
包来执行方差分析。在这里,我得到了矩阵形式的误差和因子 (=Site) 的平方和。代码在这里
library(car)
## One-Way MANOVA
anv<-summary(Anova(lm(cbind(Al, Fe, Mg, Ca, Na) ~ Site, data=Pottery)))
anv
现在我想从这个结果中提取这两个矩阵用于下一步分析。我想要的输出是这样的-
>err_ss
Al Fe Mg Ca Na
Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
>Site_ss
Al Fe Mg Ca Na
Al 175.610319 -149.295533 -130.809707 -5.8891637 -5.3722648
Fe -149.295533 134.221616 117.745035 4.8217866 5.3259491
Mg -130.809707 117.745035 103.350527 4.2091613 4.7105458
Ca -5.889164 4.821787 4.209161 0.2047027 0.1547830
Na -5.372265 5.325949 4.710546 0.1547830 0.2582456
使用下面的代码后,我得到了错误矩阵的结果,但我未能提取最后一个。
str(anv)
err_ss<-anv$"SSPE"
> err_ss
Al Fe Mg Ca Na
Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
有人可以帮我做吗?提前致谢。
我们需要根据结构进行提取。如果我们查看 str(anv)
,它是 7 个元素的 list
。 "SSPE"、"SSPH" 元素位于 "multivariate.tests" 的 "Site" 元素之下。所以用 $
或 [[
中的任一个提取它们,然后得到两个矩阵
out <- anv$multivariate.tests$Site[c("SSPE", "SSPH")]
out
#$SSPE
# Al Fe Mg Ca Na
#Al 48.2881429 7.08007143 0.60801429 0.10647143 0.58895714
#Fe 7.0800714 10.95084571 0.52705714 -0.15519429 0.06675857
#Mg 0.6080143 0.52705714 15.42961143 0.43537714 0.02761571
#Ca 0.1064714 -0.15519429 0.43537714 0.05148571 0.01007857
#Na 0.5889571 0.06675857 0.02761571 0.01007857 0.19929286
#$SSPH
# Al Fe Mg Ca Na
#Al 175.610319 -149.295533 -130.809707 -5.8891637 -5.3722648
#Fe -149.295533 134.221616 117.745035 4.8217866 5.3259491
#Mg -130.809707 117.745035 103.350527 4.2091613 4.7105458
#Ca -5.889164 4.821787 4.209161 0.2047027 0.1547830
#Na -5.372265 5.325949 4.710546 0.1547830 0.2582456
最好将其保存在一个 list
中,而不是拥有多个对象。