カスタムクラスを使用して、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
しかし、成功せずに。
これを機能させる方法はありますか?私はパンダー以外のソリューションを受け入れていますが、ケーブルは私のバージョンの R (R バージョン 3.2.3) と互換性がないようです。