2

ldply()-summarise-function 内で summary-function を使用して p 値を抽出するにはどうすればよいですか?

サンプルデータ:

(データフレーム「ピューロマイシン」がプリインストールされています)

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値を抽出するにはどうすればよいですか:)助けてください!

4

1 に答える 1

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
于 2013-02-19T13:25:55.600 に答える