我有一个包含100个观察值和>200个变量的数据帧
SUBJ_ID GROUP AGE GENDER V1 V2 V3 V4...
SUB1 1 11 1 345 245 456 333
SUB2 1 13 1 333 256 345 324
SUB3 0 19 0 345 366 234 256
我设法在dv上做了一个ancova,使用Group作为分组因素,使用年龄和性别作为协变量,以便了解在控制或年龄和性别作为协变量时,哪些意味着组之间的显著差异,我是这样做的:
> my_aov <- lapply(4:ncol, function(x) aov(df[,x] ~ Group + Age_consent
> + Gender, data = df))
我在这里存储了ancova的摘要:
> aov.summaries <- (my_aovsub, summary)
我的问题是: boh my_aov和aov.summaries的结果是一个列表的列表。我想要访问Pvalue,以便查看哪一个是有意义的,并对它们进行多次比较。
我该怎么做呢?
ancova结果示例(数字已更改):
[[235]]
Df Sum Sq Mean Sq F value Pr(>F)
Group 1 904 904 0.300 0.6788
Age_consent 1 358 368 1.217 0.4568
Gender 1 196 1916 5.314 0.0447 *
Residuals 145 4366 309
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
另外,如何将“不能”强制为data.frame的对象保存在txt文件中?
发布于 2020-03-03 15:10:54
这里有一个更好的答案。你可以有很多方法来提取它,但我认为这至少能达到你的目标:
library('dplyr')
make_aov = function(x){
form = paste(
colnames(iris)[x],
'~ Species'
) %>%
as.formula()
aov(
form,
data = iris
)
}
my_aov = lapply(
1:4,
make_aov
)
get_pvalue = function(i){
tibble(
variable = colnames(iris)[i],
p_value = anova(my_aov[[i]])$`Pr(>F)`[1]
)
}
pval_table = lapply(
1:4,
get_pvalue
) %>%
bind_rows()
https://stackoverflow.com/questions/60508493
复制相似问题