получить доступ к pvalue из anova для нескольких зависимых переменных и сохранить результаты в документе txt - PullRequest
0 голосов
/ 03 марта 2020

У меня есть фрейм данных со 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, используя Группу как фактор группировки, а также возраст и пол в качестве ковариат, чтобы увидеть, какие Значения значительно различаются между группами при контроле или возраст и пол как ковариат, и сделал ли я это следующим образом:

> my_aov <- lapply(4:ncol, function(x) aov(df[,x] ~ Group + Age_consent
> + Gender, data = df)) 

Я хранил резюме анковы здесь:

> aov.summaries <- (my_aovsub, summary) 

Мой вопрос : результаты boh my_aov и aov.summaries - это список из списка. Я хочу получить доступ к P-значениям, чтобы увидеть, какое из них значимо, а также выделить их для множественных сравнений.

Как я могу это сделать?

Пример результата 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?

1 Ответ

0 голосов
/ 03 марта 2020

Вот лучший ответ. Есть много способов, которыми вы могли бы go извлечь это, но я думаю, что это, по крайней мере, поможет вам достичь цели:

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...