Domanda

Ho appena eseguito una serie di modelli in un modo bello e flessibile che ha applicato la separazione del codice dati.Ho avuto una buona lista di formule e modelli nella mia sezione di configurazione che I lapply'd è finito per ottenere un elenco di oggetti modello.Ora voglio visualizzarli in stargazer, ma non ci vuole un oggetto elenco.Come faccio a farlo senza dover digitare ogni elemento dell'elenco?

Esempio riproducibile:

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")
.

È stato utile?

Soluzione

Assicurati di utilizzare una versione aggiornata del pacchetto.A partire dalla versione 4.5.3 (disponibile su Cran da Nov 2013), stargazer è stato in grado di accettare elenchi di oggetti esattamente nel modo in cui ti aspetteresti:

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

Altri suggerimenti

Utilizzare do.call:

do.call( stargazer, l ) 
.

Tuttavia, questo preclude che passa in argomenti nel solito modo:

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

Pertanto, è necessario aggiungere gli argomenti denominati all'elenco:

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

Un altro modo per farlo è quello di curvare la funzione Stargazer:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top