2
我想用pandoc.tables(我使用pander)很好地显示大量数字,同时编织html或pdf。在pandoc.table中使用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)不兼容。
我很抱歉,我忘了补充一个例子。但实际上很简单:我尝试了'x' vs'pandoc.table(x)'。我想避免预处理数据框架,因为这样我就失去了处理数据的能力,因为它们是现在的字符。 – paulwasit
或者在你的例子中,我想要显示'pandoc.table(c(sum(millions),sum(billionions))'作为类'百万'返回。预处理数据框意味着失去操作数据的能力为他们现在是字符 – paulwasit
@paulwasit我几乎写道,“pander”将最终对象作为降价表进行报告,因此不会有任何进一步的数据操作 - 但有第二个想法表明有一个'pander'包中的'formatter'选项确实非常有用。请问您可以在[GH](https://github.com/Rapporter/pander)上打开一张票吗? – daroczig