2013-02-19 5 views
2

Как использовать функцию summary внутри функции ldply() - sumize для извлечения значений p?Использование summary (glm-object) внутри ldply() с помощью функции summary()

Пример данные:

(данные кадра "Пуромицин" предварительно установлена)

library(reshape2) 
library(plyr) 
Puromycin.m <- melt(Puromycin , id=c("state") ) 
Puro.models <- dlply(Puromycin.m , .(variable) , glm , formula = state ~ value , 
family = binomial ) 

можно построить этот фрейм данных с извлеченными результатами:

ldply(Puro.models , summarise , "n in each model" = length(fitted.values) , 
"Coefficients" = coefficients[2]) 

Но я не могу извлечь значения р таким же образом. Я thougt это будет работать, но это не делает:

ldply(Puro.models , summarise , 
    "n in each model" = length(fitted.values) , 
    "Coefficients" = coefficients[2], 
    "P-value" = function(x) summary(x)$coef[2,4]    ) 

Как я могу извлечь р-значения для этого фрейма данных :) Пожалуйста, помогите!

ответ

5

Почему бы вам не получить их напрямую?

library(reshape2) 
library(plyr) 
Puromycin.m <- melt(Puromycin , id=c("state") ) 
Puro.models <- ddply(Puromycin.m , .(variable), function(x) { 
    t <- glm(x, formula = state ~ value, family="binomial") 
    data.frame(n = length(t$fitted.values), 
       coef = coefficients(t)[2], 
       pval = summary(t)$coef[2,4]) 
}) 

> Puro.models 
# variable n  coef  pval 
# 1  conc 23 -0.55300908 0.6451550 
# 2  rate 23 -0.01555023 0.1272184 
+0

Отлично, спасибо! Есть ли у вас какие-либо предложения для лучшего понимания использования функций внутри ddply()? –

+0

Мне нравится [** эта презентация **] (https://speakerdeck.com/lowdecarie/hadley-ecosystem-reshape-plyr-ggplot) много. Это очень приятное начальное чтение. Однако, я думаю, что нет никакой замены [** документации Хэдли **] (http://cran.r-project.org/web/packages/plyr/plyr.pdf). Надеюсь это поможет. – Arun

 Смежные вопросы

  • Нет связанных вопросов^_^