У меня есть пример таблицы регрессии в R, созданной с помощью пакета stargazer:
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
se1 <- round(coeftest(lm.D9, vcov = vcovHC(lm.D9, type = "HC1"))[,2],4)
stargazer(mod1,
se=list(se1),keep.stat = "n", type = "text",
add.lines = list(c("Method","OLS"),
c("HR Robust","True True True")))
с выходом Stargazer:
========================================
Dependent variable:
---------------------------
workedm
----------------------------------------
morekids -0.115***
(0.002)
Constant 0.575***
(0.001)
----------------------------------------
Method OLS
HR Robust True True True
Observations 266,928
========================================
Note: *p<0.1; **p<0.05; ***p<0.01
Я хотел бы переместить ряд Observations
выше Method
и HR Robust
. Кроме того, я хотел бы сделать отступ для каждой части "True True True"
, чтобы каждый True
находился поверх другого:
...
Method OLS
HR Robust True
True
True
Observations 266,928
...
Есть ли способ сделать это? Спасибо!
stargazer
удобно и невидимо возвращает свой вывод в виде вектора символов. Это позволяет нам назначить вывод переменной, а затем обработать его в соответствии с вашими потребностями.
Например, мы можем преобразовать оригинал в желаемый результат следующим образом:
star = stargazer(mod1, se=list(se1),keep.stat = "n", type = "text",
add.lines = list(c("Method","OLS"),
c("HR Robust","True True True")))
meth.row = grep('^Method', star)
obs.row = grep('^Observations', star)
HR.row = grep('^HR Robust', star)
star = c(
star[1:(meth.row-1L)],
star[obs.row],
star[meth.row],
new.hr <- sub('True True True',' True ',star[HR.row]),
rep(sub('HR Robust', ' ', new.hr), 2),
star[setdiff((HR.row+1):length(star), obs.row)]
)
cat(star, sep ='\n')
Что производит
========================================
Dependent variable:
---------------------------
y
----------------------------------------
x 4.004
Constant -0.235***
(0.017)
----------------------------------------
Observations 100
Method OLS
HR Robust True
True
True
========================================
Note: *p<0.1; **p<0.05; ***p<0.01
Вы можете использовать аргумент table.layout
, чтобы настроить порядок элементов, которые вы хотите отобразить в своем выводе:
строка символов, указывающая, какие части таблицы должны быть включены в вывод в порядке, указанном пользователем. Каждая буква в строке указывает конкретную часть таблицы, как указано по символам разметки таблицы. Например, table.layout = "#tn" сообщит только номера моделей, таблицу коэффициентов и примечания.
Чтобы получить TRUE друг под другом, вы можете просто создать два вектора с некоторым пустым значением, чтобы получить их ниже в каждом. Вот некоторый воспроизводимый код (обратите внимание, что в качестве примера я использую se1 в качестве модели):
library(stargazer)
library(lmtest)
library(sandwich)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
se1 <- round(coeftest(lm.D9, vcov = vcovHC(lm.D9, type = "HC1"))[,2],4)
stargazer(lm.D9,
se=list(se1), keep.stat = "n", type = "text",
add.lines = list(c("Method","OLS"),
c("HR Robust","True"),
c("", "True"),
c("", "True")),
table.layout = "=ld-t-sa=n")
#>
#> ========================================
#> Dependent variable:
#> ---------------------------
#> weight
#> ----------------------------------------
#> groupTrt -0.371
#> (0.311)
#>
#> Constant 5.032***
#> (0.184)
#>
#> ----------------------------------------
#> Observations 20
#> Method OLS
#> HR Robust True
#> True
#> True
#> ========================================
#> Note: *p<0.1; **p<0.05; ***p<0.01
Created on 2023-04-15 with reprex v2.0.2
Как видите, теперь у нас есть наблюдения за порядком, метод и HR Robust.
Здесь вы можете найти символы для создания заказа с каждым описанием:
Table Layout Characters
"-" single horizontal line
" = " double horizontal line
"-!" mandatory single horizontal line
"=!" mandatory double horizontal line
"l" dependent variable caption
"d" dependent variable labels
"m" model label
"c" column labels
"#" model numbers
"b" object names
"t" coefficient table
"o" omitted coefficient indicators
"a" additional lines
"n" notes
"s" model statistics