Stargazer 在负数值的减号周围附加 $...$

Stargazer puts an additional $...$ around the minus sign of a negative numeric value

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

$$-$ 2$

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

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

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

设置 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$ & $ & $-2$ \ 
\hline \[-1.8ex] 
\end{tabular}