xtable以不同方式格式化每列

时间:2014-08-11 02:22:06

标签: r formatting latex rstudio xtable

我正在尝试使用summaryBy创建我的表的摘要,如下所示

year   qtr   FX_mean     FX_median
2000    1     1000000      1000000
2000    2     2000         1000
2000    3     3000         2000

FX_mean和FX_median是货币。我将它发送到xtable,然后将其打印到LaTeX文件。现在,当我格式化时,我能够获得带有2个小数点的FX_mean和FX_median。但由于它是货币,我想要一个","每千人之后,即1,000,000。我尝试使用像

这样的东西
 format.args = list(big.mark = ",", decimal.mark = "."))

print(result, type="latex", file="output.tex", include.rownames=FALSE, booktabs = TRUE, floating = FALSE, format.args = list(big.mark = ",", decimal.mark = "."))

但它适用于整个数据帧,所以即使多年来 - 所以我看到2,000 ... 2,007等等。有没有办法让big.mark单独适用于FX_mean和FX_median?

year   qtr     FX_mean          FX_median
2000    1     1,000,000.00      1,000,000.00
2000    2     2,000.00         1,000.00
2000    3     3,000.00         2,000.00

1 个答案:

答案 0 :(得分:0)

似乎直接无法做到这一点,因为format.args适用于每一列,您不能将其指定为列表,每列都有一个元素。以下是print.xtable的相关代码: https://github.com/cran/xtable/blob/master/R/print.xtable.R#L567

所以解决方法是在将表格移交给xtable之前将该列转换为字符:

mytab$FX_mean <- format(mytab$FX_mean, big.mark = ",", decimal.mark = ".")

和其他专栏类似。