Pergunta

Acabei de executar uma série de modelos de uma maneira agradável e flexível que impôs a separação de código de dados.Eu tinha uma boa lista de fórmulas e modelos na minha seção de configuração que eu lapply'd para obter uma lista de objetos de modelo.Agora quero exibi-los em stargazer, mas não aceita um objeto de lista.Como faço isso sem precisar digitar cada elemento da lista?

Exemplo reproduzível:

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")
Foi útil?

Solução

Certifique-se de estar usando uma versão atualizada do pacote.A partir da versão 4.5.3 (disponível no CRAN desde novembro de 2013), stargazer foi capaz de aceitar listas de objetos exatamente da maneira que você esperaria:

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

Outras dicas

Usar do.call:

do.call( stargazer, l ) 

No entanto, isso impede a transmissão de argumentos da maneira usual:

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

Portanto, você deve adicionar os argumentos nomeados à lista:

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

Outra maneira de fazer isso é usar a função stargazer:

require(functional)
sgCurried <- Curry( stargazer, type="text" ) # all arguments to stargazer go in here
do.call( sgCurried, l )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top