Списки R-cbind (резюме lm)

Я ищу cbind lm summary, хранящиеся в разных списках. У меня хранится около 20 разных моделей, поэтому я хотел бы избежать cbind вручную.

Ты хоть представляешь, как я могу это сделать?

Вот пример моих list

data = list(structure(list(`a alone` = structure(c(4L, 5L, 1L, 2L, 3L
), .Names = c("(Intercept)", "isexMALE", "numchild_rec1", "numchild_rec2", 
"numchild_rec>2"), .Label = c("-59.819", "-61.193", "-72.312", 
"126.679", "9.825"), class = "factor"), pvalue = structure(c(2L, 
1L, 2L, 2L, 2L), .Names = c("(Intercept)", "isexMALE", "numchild_rec1", 
"numchild_rec2", "numchild_rec>2"), .Label = c(" ", "***"), class =         "factor")), .Names = c("a alone", 
"pvalue"), row.names = c("(Intercept)", "isexMALE", "numchild_rec1", 
"numchild_rec2", "numchild_rec>2"), class = "data.frame"), structure(list(
    `b partner` = structure(c(4L, 5L, 1L, 2L, 3L), .Names = c("(Intercept)", 
"isexMALE", "numchild_rec1", "numchild_rec2", "numchild_rec>2"
), .Label = c("-222.064", "-259.233", "-277.213", "365.149", 
"8.608"), class = "factor"), pvalue = structure(c(2L, 1L, 
2L, 2L, 2L), .Names = c("(Intercept)", "isexMALE", "numchild_rec1", 
"numchild_rec2", "numchild_rec>2"), .Label = c(" ", "***"
), class = "factor")), .Names = c("b partner", "pvalue"), row.names = c("(Intercept)", 
"isexMALE", "numchild_rec1", "numchild_rec2", "numchild_rec>2"
), class = "data.frame"), structure(list(`c child` = structure(c(4L, 
1L, 5L, 2L, 3L), .Names = c("(Intercept)", "isexMALE", "numchild_rec1", 
"numchild_rec2", "numchild_rec>2"), .Label = c("-36.267", "112.03", 
"119.228", "23.706", "86.989"), class = "factor"), pvalue = structure(c(1L, 
2L, 2L, 2L, 2L), .Names = c("(Intercept)", "isexMALE", "numchild_rec1", 
"numchild_rec2", "numchild_rec>2"), .Label = c("**", "***"), class =     "factor")), .Names = c("c child", 
"pvalue"), row.names = c("(Intercept)", "isexMALE", "numchild_rec1", 
 "numchild_rec2", "numchild_rec>2"), class = "data.frame"))

Я хотел бы получить такой вывод

               a alone pvalue b partner pvalue c child pvalue
(Intercept)    126.679    ***   365.149    ***  23.706     **
isexMALE         9.825            8.608        -36.267    ***
numchild_rec1  -59.819    ***  -222.064    ***  86.989    ***
numchild_rec2  -61.193    ***  -259.233    ***  112.03    ***
numchild_rec>2 -72.312    ***  -277.213    *** 119.228    ***

person giac    schedule 01.07.2015    source источник


Ответы (2)


Попробуй это:

 data<- as.data.frame(data)
person erasmortg    schedule 01.07.2015

Если вы хотите использовать cbind, вы можете сделать:

data <- do.call(cbind, data)

В выводе между этим решением и принятым ответом есть небольшая разница, заключающаяся в том, что cbind сохранит имена переменных, тогда как data.frame изменит их (чтобы избежать дублирования имен столбцов, а также устранить пробелы). Так:

data_cb <- do.call(cbind, data)
data_df <- data.frame(data)

names(data_cb)
[1] "a alone"   "pvalue"    "b partner" "pvalue"    "c child"   "pvalue" 

names(data_df)
[1] "a.alone"   "pvalue"    "b.partner" "pvalue.1"  "c.child"   "pvalue.2"

Это иллюстрирует тот факт, что cbind не всегда может давать вывод в желаемом формате. Подробнее об этом обсуждении см. здесь и ссылка в соответствующем комментарии.

person hugot    schedule 01.07.2015