我想在编写 html 或 pdf 时使用自定义类来很好地使用 pandoc.tables(我正在使用 pander)显示大量数字。
由于这个 SO question ,我找到了一种在控制台中很好地打印的方法。
在此示例中,打印 x 返回 6M 75M 743.5M 0.3M 4.3M:
print.million <- function(x, ...) {
x <- paste0(round(x / 1e6, 1), "M")
NextMethod(x, quote = FALSE, ...)
}
x <- c(6e+06, 75000400, 743450000, 340000, 4300000)
class(x) <- "million"
x
但是这种格式会随着 pandoc.table 消失:显示原始的、未格式化的值。我也尝试过自定义格式(上述 SO 问题的答案):
format.million <- function(x,...)paste0(round(unclass(x) / 1e6, 1), "M")
as.data.frame.million <- base:::as.data.frame.factor
但没有成功。
有没有办法使这项工作?我对 pander 以外的解决方案持开放态度,但 kable 似乎与我的 R 版本(R 版本 3.2.3)不兼容。