Разбить статистику по нескольким столбцам для таблицы LaTeX с помощью esttab / estout - PullRequest
0 голосов
/ 07 ноября 2018

Я хотел бы иметь возможность центрировать статистику по нескольким столбцам при использовании esttab.

В моем примере с игрушкой я бы хотел, чтобы N занимал два столбца:

sysuse auto, clear

est clear
qui estpost sum if foreign == 1
qui est store sum_foreign
qui estpost sum
qui est store sum_all

esttab sum_foreign sum_all, ///
    replace ///
    cells("mean(fmt(3)) sd(fmt(3))") ///
    nonum ///
    collabels("Mean" "SD") ///
    label ///
    noobs ///
    drop(make) ///
    stats(N, ///
        fmt(%9.0fc) ///
        label("Observations"))

Хотя в игрушечном примере используется только вывод Stata, в общем, я хотел бы сделать это в LaTeX.

Для других частей таблицы (collabels, mgroups и т. Д.) Вы можете указать аргумент pattern(), который позволяет вам охватывать, но это не вариант для stats().

Кто-нибудь знает, как я могу сделать подсчет наблюдений на ширине модели (2 столбца)?

1 Ответ

0 голосов
/ 07 ноября 2018

Вам необходимо вручную вставить необходимый интервал между каждой статистикой с помощью estadd, используя соответствующую разметку LaTeX в качестве префикса. Это необходимо для правильного набора таблицы.

У меня работает следующее:

sysuse auto, clear

est clear
estpost sum if foreign == 1

local N1 \hspace{1.2cm}`e(N)'
estadd local NA `N1'

est store sum_foreign
estpost sum

local N2 \hspace{2cm}`e(N)'
estadd local NA `N2'

est store sum_all

esttab sum_foreign sum_all using table.tex, ///
    replace ///
    cells("mean(fmt(3)) sd(fmt(3))") ///
    nonum ///
    collabels("Mean" "SD") ///
    label ///
    noobs ///
    drop(make) ///
    stats(NA, ///
        fmt(%9.0fc) ///
        label("Observations"))

EDIT:

Вот еще один способ сделать это, но с автоматическим центрированием чисел наблюдения:

sysuse auto, clear

est clear
estpost sum if foreign == 1

local N1 &\multicolumn{2}{c}{`e(N)'}

estadd local NA `N1'
est store sum_foreign

estpost sum

local N2 &\multicolumn{2}{c}{`e(N)'}

estadd local NA `N2'
est store sum_all

esttab sum_foreign sum_all using table.tex, ///
    replace ///
    cells("mean(fmt(3)) sd(fmt(3))") ///
    nonum ///
    collabels("Mean" "SD") ///
    label ///
    noobs ///
    drop(make) /// 
    postfoot("\hline Observations: `N1' `N2' \\ \hline\hline \\ \end{tabular} \\ }")
...