Question

Je viens d'exécuter une série de modèles d'une manière agréable et flexible qui imposait la séparation données-code.J'avais une belle liste de formules et de modèles dans ma section de configuration que je lapplyJe suis allé chercher une liste d'objets modèles.Maintenant, je veux les afficher dans stargazer, mais il ne prend pas d'objet de liste.Comment faire cela sans avoir à taper chaque élément de la liste ?

Exemple reproductible :

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")
Était-ce utile?

La solution

Veuillez vous assurer que vous utilisez une version à jour du package.A partir de la version 4.5.3 (disponible sur CRAN depuis novembre 2013), stargazer a été capable d'accepter des listes d'objets exactement de la manière à laquelle vous vous attendez :

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

Autres conseils

Utiliser do.call:

do.call( stargazer, l ) 

Cependant, cela empêche de transmettre des arguments de la manière habituelle :

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

Par conséquent, vous devez ajouter les arguments nommés à la liste :

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

Une autre façon de procéder consiste à activer la fonction stargazer :

require(functional)
sgCurried <- Curry( stargazer, type="text" ) # all arguments to stargazer go in here
do.call( sgCurried, l )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top