1

如果我在 R 中有一个负数值,我想使用 stargazer 将其输出到乳胶代码中,我会得到如下信息:

$$-$ 2$

Latex 无法处理,因为前两个美元符号之间没有空格。如果 stargazer 解释为负值,则会发生这种情况:

library("stargazer")
stargazer(-2, summary=F) # delete the minus sign to see the difference, it'll be: $2$

我怎样才能避免这种情况?乳胶完全可以得到 $- 2$ 并将其解释为数学,所以我怎样才能摆脱减号周围的那些额外的美元符号,或者作为一种解决方法,在两个美元符号之间添加一个空格?我的真实表当然很大,这使得手动更新不可行。

4

1 回答 1

1

设置 align = TRUE 应该可以解决您的问题。Stargazer 然后使用 dcolumn 包并生成以下输出:

> stargazer(c(-0.2, 1, -2), summary = FALSE, float = FALSE, header = FALSE, align = TRUE)

\begin{tabular}{@{\extracolsep{5pt}} D{.}{.}{-3} D{.}{.}{-3} D{.}{.}{-3} } 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
-0.200 & 1 & -2 \\ 
\hline \\[-1.8ex] 
\end{tabular} 

如果出于某种原因,您不能或不想使用 dcolumn 包,您也可以通过以下方式手动替换不需要的符号:

t <- stargazer(c(-0.2, 1, -2), summary = FALSE, float = FALSE, header = FALSE, align = FALSE)
t <- gsub("\\$\\$\\-\\$", "\\$\\-", t) # substitute unwanted behaviour
write.table(t, row.names = FALSE, col.names = FALSE, quote = FALSE) # recreate latex table

\begin{tabular}{@{\extracolsep{5pt}} ccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
$-0.200$ & $1$ & $-2$ \\ 
\hline \\[-1.8ex] 
\end{tabular} 
于 2018-04-30T16:52:35.990 回答