Използване на summary(glm-object) вътре в ldply() с функцията summarise() -

Как да използвам summary-function в ldply()-summarise-function за извличане на p-стойности?

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

(Рамката с данни "Puromycin" е предварително инсталирана)

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] )

Но не мога да извлека p-стойностите по същия начин. Мислех, че това ще проработи, но не:

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

Как мога да извлека p-стойности в тази рамка с данни :) Моля, помогнете!


person Rasmus Larsen    schedule 19.02.2013    source източник


Отговори (1)


Защо не ги вземете директно?

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
person Arun    schedule 19.02.2013
comment
Отлично, благодаря! Имате ли предложения за четене, за да разберете по-добре използването на функции в ddply()? - person Rasmus Larsen; 20.02.2013
comment
Харесвам тази презентация много. Това е много хубаво първоначално четене. Мисля обаче, че няма заместител на документацията на Hadley. Надявам се това да помогне. - person Arun; 20.02.2013