Pregunta

Acabo de ejecutar una serie de modelos de una manera agradable y flexible que forzaron la separación del código de datos.Tuve una bonita lista de fórmulas y modelos en mi sección de configuración, que generalmente he podido obtener una lista de objetos modelo.Ahora quiero mostrarlos en lapply, pero no toma un objeto de lista.¿Cómo hago esto sin tener que escribir cada elemento de la lista?

Ejemplo reproducible:

require(stargazer)
l <- list()
l$lm1 <- lm(rating ~ complaints + privileges + learning + raises + critical,
data=attitude)
l$lm2 <- lm(rating ~ complaints + privileges + learning, data=attitude)
## create an indicator dependent variable, and run a probit model
attitude$high.rating <- (attitude$rating > 70)
l$prbt <- glm(high.rating ~ learning + critical + advance, data=attitude,
family = binomial(link = "probit"))
stargazer( l[[1]], l[[2]], l[[3]], title="Results", align=TRUE, type="text")

¿Fue útil?

Solución

Asegúrese de que está utilizando una versión actualizada del paquete.Comenzando con la versión 4.5.3 (disponible en CRAN desde noviembre de 2013), stargazer ha podido aceptar listas de objetos exactamente en la forma en que se espera:

stargazer(l, title="Results", align=TRUE, type="text")

Otros consejos

Utilice do.call:

do.call( stargazer, l ) 

Sin embargo, esto excluye que pasa en argumentos de la manera habitual:

> do.call( stargazer, l, type="text" )
Error in do.call(stargazer, l, type = "text") : 
  unused argument (type = "text")

Por lo tanto, tiene que agregar los argumentos nombrados a la lista:

l$type <- "text"
l$align <- TRUE
l$title <- "Results"
do.call( stargazer, l )

Otra forma de hacerlo es currecer a la función StarGazer:

require(functional)
sgCurried <- Curry( stargazer, type="text" ) # all arguments to stargazer go in here
do.call( sgCurried, l )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top