我正在使用注视仪制作包含数学表达式的乳胶表。在回归表中一切正常:
data("cars")
library("stargazer")
cars
m <- lm(speed ~ dist - 1, cars)
# a data frame containing variable labels
vars <- data.frame(raw = c("speed", "dist"), labels = c("$Speed^{in}_t$", "$Cars \\times Space^{in}$" ), stringsAsFactors = F)
raw labels
1 speed $Speed^{in}_t$
2 dist $Cars \\times Space^{in}$
out <- stargazer(m, covariate.labels = vars$labels[2])
out
[1] ""
[2] "% Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu"
[3] "% Date and time: Do, Feb 27, 2020 - 17:10:24"
[4] "\\begin{table}[!htbp] \\centering "
[5] " \\caption{} "
[6] " \\label{} "
[7] "\\begin{tabular}{@{\\extracolsep{5pt}}lc} "
[8] "\\\\[-1.8ex]\\hline "
[9] "\\hline \\\\[-1.8ex] "
[10] " & \\multicolumn{1}{c}{\\textit{Dependent variable:}} \\\\ "
[11] "\\cline{2-2} "
[12] "\\\\[-1.8ex] & speed \\\\ "
[13] "\\hline \\\\[-1.8ex] "
[14] " $Cars \\times Space^{in}$ & 0.308$^{***}$ \\\\ "
[15] " & (0.015) \\\\ "
[16] " & \\\\ "
[17] "\\hline \\\\[-1.8ex] "
[18] "Observations & 50 \\\\ "
[19] "R$^{2}$ & 0.896 \\\\ "
[20] "Adjusted R$^{2}$ & 0.894 \\\\ "
[21] "Residual Std. Error & 5.291 (df = 49) \\\\ "
[22] "F Statistic & 423.468$^{***}$ (df = 1; 49) \\\\ "
[23] "\\hline "
[24] "\\hline \\\\[-1.8ex] "
[25] "\\textit{Note:} & \\multicolumn{1}{r}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\\\ "
[26] "\\end{tabular} "
[27] "\\end{table} "
cat(out, sep = '\n', file = "test.tex")
但是,当我尝试创建一个包含具有数学表达式的变量名称的摘要表时::
r <- do.call(cbind, lapply(cars, mean)) %>% t() %>% data.frame
rownames(r) <- vars$labels
out <- stargazer(r, summary = F)
out
[1] ""
[2] "% Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu"
[3] "% Date and time: Do, Feb 27, 2020 - 17:19:40"
[4] "\\begin{table}[!htbp] \\centering "
[5] " \\caption{} "
[6] " \\label{} "
[7] "\\begin{tabular}{@{\\extracolsep{5pt}} cc} "
[8] "\\\\[-1.8ex]\\hline "
[9] "\\hline \\\\[-1.8ex] "
[10] " & . \\\\ "
[11] "\\hline \\\\[-1.8ex] "
[12] "\\$Speed$\\hat{\\mkern6mu}$\\{in\\}\\_t\\$ & $15.400$ \\\\ "
[13] "\\$Cars \\textbackslash times Space$\\hat{\\mkern6mu}$\\{in\\}\\$ & $42.980$ \\\\ "
[14] "\\hline \\\\[-1.8ex] "
[15] "\\end{tabular} "
[16] "\\end{table} "
特别是,输出从$Cars \\times Space^{in}$
变为\\$Cars \\textbackslash times Space$\\hat{\\mkern6mu}$\\{in\\}\\$
。为什么会这样?
不是最佳方法,但作为临时解决方法:
r <- do.call(cbind, lapply(cars, mean)) %>% t() %>% data.frame
out <- stargazer(r, summary = F )
vars$raw <- paste0("^", vars$raw, " &")]
vars$raw <- gsub("_", "\\\\_", vars$raw, fixed = T)]
vars$labels <- paste0(vars$labels, " &")
for(i in 1:nrow(vars)){
out <- gsub(vars$raw[i], vars$labels[i], out)
}
out
out <- gsub("times", "\\\\times", out)
out
[1] ""
[2] "% Table created by stargazer v.5.2.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu"
[3] "% Date and time: Do, Feb 27, 2020 - 19:09:05"
[4] "\\begin{table}[!htbp] \\centering "
[5] " \\caption{} "
[6] " \\label{} "
[7] "\\begin{tabular}{@{\\extracolsep{5pt}} cc} "
[8] "\\\\[-1.8ex]\\hline "
[9] "\\hline \\\\[-1.8ex] "
[10] " & . \\\\ "
[11] "\\hline \\\\[-1.8ex] "
[12] "$Speed^{in}_t$ & & $15.400$ \\\\ "
[13] "$Cars \\times Space^{in}$ & & $42.980$ \\\\ "
[14] "\\hline \\\\[-1.8ex] "
[15] "\\end{tabular} "
[16] "\\end{table} "