gpt4 book ai didi

r - 更改小数点会使 stargazer 在数字之间添加额外的空格

转载 作者:行者123 更新时间:2023-12-02 18:05:28 25 4
gpt4 key购买 nike

我正在使用库 stargazerlatex 中生成表格 (Rstudio/knitr/Sweave)。
我需要将小数点分隔符更改为逗号(“,”),并且函数 stargazer() 在大多数情况下都可以工作。仅当传递 summary = false 选项时,结果才会在数字之间带有额外的空格。
有人知道如何克服这个问题吗?

<<results='asis'>>=
library(stargazer)
set.seed(0)
x = matrix(rnorm(3),nrow = 1)
y = matrix(rnorm(9),nrow = 3)

stargazer(x,summary=FALSE)
stargazer(x,summary=FALSE,decimal.mark = ",")
stargazer(y,summary=TRUE,decimal.mark = ",")
@

Table 2 always shows a extra space between the comma and the first decimal place. Table 3 shows good results

最佳答案

当检查生成的 TEX 时,很明显 stargazer 没有在逗号后面添加任何空格。问题出在其他地方:

这个问题的根源是 LaTeX 默认不识别 , 作为小数点分隔符。因此,在数学模式下,LaTeX 在每个 , 后面添加一个空格。这个问题描述here on TEX.SE解决方案是包含 icomma包。

\documentclass{article}
\usepackage{icomma}
\begin{document}
<<results='asis', echo=FALSE, message = FALSE>>=
library(stargazer)
set.seed(0)
x = matrix(rnorm(3),nrow = 1)
y = matrix(rnorm(9),nrow = 3)

stargazer(x,summary=FALSE)
stargazer(x,summary=FALSE,decimal.mark = ",")
stargazer(y,summary=TRUE,decimal.mark = ",")
@
\end{document}

Output with icomma

<小时/>

仍然存在一个问题:为什么从问题的表 3 中看不到该问题?这是因为 stargazer 在表格中使用了不一致的数学标记。表 2 中的第二个单元格包含 $$-$0,326$,而表 3 的第 2 行、最后一列包含 $-$0,006。在第一种情况下,数字本身处于数学模式,导致上述行为。 (不幸的是,- 处于文本模式,导致排版不良。)在第二种情况下,数字处于文本模式,没有添加额外的空格。

为了克服格式错误的减号问题,我建议对简单(非汇总)表格使用 xtable 而不是 stargazer。与将列设置为数学模式的自定义列类型相结合,结果为:

Output with icomma and xtable

\documentclass{article}
\usepackage{icomma}
\usepackage{tabularx}
\newcolumntype{R}{>{$}r<{$}} % like an "r" column but in math mode
\begin{document}
<<results='asis', echo=FALSE>>=
library(xtable)
set.seed(0)
x = matrix(rnorm(3),nrow = 1)

print.xtable(
xtable(x, caption = "", align = rep("R", 4)),
include.rownames = FALSE,
include.colnames = FALSE,
format.args = list(decimal.mark = ","),
caption.placement = "top")
@
\end{document}

关于r - 更改小数点会使 stargazer 在数字之间添加额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com