只为百分比保留尾随零

Keep trailing zeros for percents only

给定以下示例:

library(pander)
tableAbs <- Titanic[1, 1, , ]
tablePct <- round(prop.table(tableAbs) * 100, 2)
table <- cbind(tableAbs, tablePct)
pander(table)

----------------------------------
  &nbsp;     No   Yes   No    Yes 
----------- ---- ----- ----- -----
 **Child**   0     5     0   2.78 

 **Adult**  118   57   65.56 31.67
----------------------------------

我想保留那个 0 百分比的所有尾随零,所以这就是我所做的:

panderOptions("keep.trailing.zeros", TRUE)
pander(table)

------------------------------------
  &nbsp;      No    Yes   No    Yes 
----------- ------ ----- ----- -----
 **Child**   0.00  5.00  0.00  2.78 

 **Adult**  118.00 57.00 65.56 31.67
------------------------------------

现在的问题是,即使是绝对频率也附加了 .00。由于这些是自然数,因此保留 those 尾随零毫无意义。我该怎么做?

感谢 rawr 的评论。

您可以使用 format 来保留尾随零。这会将舍入值转换为 character,同时保留 table.

的尺寸
tablePct <- format(round(prop.table(tableAbs) * 100, 2))

编辑

似乎可以与 xtabs class

一起使用
mtcars$am[mtcars$vs == 1]  <- 0
x <- xtabs(~ am + vs, data=mtcars)
tab <- format(round(100*prop.table(x), 2))
tab <- cbind(x, tab)
pander(tab)

---------------------------
&nbsp;   0   1    0     1  
------- --- --- ----- -----
 **0**  12  14  37.50 43.75

 **1**   6   0  18.75 0.00 
---------------------------