【问题标题】:xtable formatting each column differentlyxtable 以不同方式格式化每一列
【发布时间】:2014-08-11 02:22:05
【问题描述】:

我正在尝试使用 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 文件中。现在,当我格式化时,我可以得到 FX_mean 和 FX_median 的 2 个小数点。但由于它是货币,我想要一个“,”在每千,即 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

【问题讨论】:

    标签: r formatting latex rstudio xtable


    【解决方案1】:

    这似乎是直接不可能的,因为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 = ".")
    

    对于另一列也是如此。

    【讨论】:

      猜你喜欢
      • 2013-11-09
      • 2021-04-13
      • 2014-11-26
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多