Как автоматически выбирать элементы для отображения в таблице stargazer

#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)
 

Вам нужно убедиться, что в вашем пространстве имен нет других элементов, которые имели бы совпадающие имена.