#r #stargazer
#r #stargazer
Вопрос:
Я сохранил три регрессии (reg1, reg2, reg3) вместе с их стандартными ошибками (reg.se1, reg.se2, reg.se3) и значения кластера p (reg.crp1, reg.crp2, reg.crp3). Я хочу создать диаграмму с помощью stargazer в соответствии с:
stargazer(list(reg1, reg2, reg3), se=list(reg.se1, reg.se2, reg.se3), p=list(reg.crp1, reg.crp2,reg.crp3))
Это работает хорошо, но мне нужно добавить еще 30 регрессий, и мне было интересно, есть ли способ создать цикл, чтобы я мог делать это автоматически, вместо того, чтобы добавлять дополнительные 30 регрессий вручную?
Большое вам спасибо,
Макс
Ответ №1:
Я не думаю, что вам нужен цикл. ls()
Должно быть достаточно некоторого творческого сопоставления строк. stringr
Для этого я использовал библиотеку, но ?grep
в base R тоже должно работать.
library(stringr)
## this expression picks up everything that starts with "reg", but the fourth symbol is not '.'
coeflist <- ls()[!is.na(str_match(ls(), '^reg[^.;] '))]
## this expression picks up everything that starts with "reg.se"
selist <- ls()[!is.na(str_match(ls(), '^reg.se'))]
## this expression picks up everything that starts with "reg.crp"
pvallist <- ls()[!is.na(str_match(ls(), '^reg.crp'))]
Теперь вы можете создать свою таблицу stargazer с помощью
stargazer(coeflist,
selist,
pvallist)
Вам нужно убедиться, что в вашем пространстве имен нет других элементов, которые имели бы совпадающие имена.