Я видел пример применения списка (lapply), который прекрасно работает, чтобы взять список объектов данных, и вернуть список регрессионного вывода, который мы можем пройти для Stargazer для хорошо отформатированного вывода. Using stargazer with a list of lm objects created by lapply-ing over a split data.frameИспользуйте множественную регрессию с изменением формулы, а не набор данных
library(MASS)
library(stargazer)
data(Boston)
by.river <- split(Boston, Boston$chas)
class(by.river)
fit <- lapply(by.river, function(dd)lm(crim ~ indus,data=dd))
stargazer(fit, type = "text")
Что я хотел бы сделать это, вместо того, чтобы передать список наборов данных, чтобы сделать то же самое регрессию каждого набора данных (как описано выше), передать список независимых переменных, чтобы сделать различные регрессии по тот же набор данных. В долгосрочной перспективе это будет выглядеть так:
fit2 <- vector(mode = "list", length = 2)
fit2[[1]] <- lm(nox ~ indus, data = Boston)
fit2[[2]] <- lm(crim ~ indus, data = Boston)
stargazer(fit2, type = "text")
с lapply, я попробовал это, и он не работает. Где я неправ?
myvarc <- c("nox","crim")
class(myvarc)
myvars <- as.list(myvarc)
class(myvars)
fit <- lapply(myvars, function(dvar)lm(dvar ~ indus,data=Boston))
stargazer(fit, type = "text")
Это работает, но не в чистом виде (использует номера столбцов не имена, не сохраняет имена для заголовков в выходные Звездочет) 'fit3 = lapply (Бостон [, c (1,5)], функция (x) (lm (x ~ Boston $ indus))) stargazer (fit3, type = "text") ' –
Проблема решена ниже. Однако ярлыки не очень хорошо переносятся на Stargazer. Этот код исправит это. 'Stargazer (fit, type =" text ", dep.var.labels.include = FALSE, column.labels = myvarc)' –