在 rmarkdown 中用 kable 打印一个因子的频率 table

Print a frequency table of a factor with kable in rmarkdown

我在 R 中有一个因素,它由水平 a、b 和 c 组成。数据由 2 个 a、1 个 b 和无 c 组成。我想得到这样的输出(根据级别的元素频率):

fac <- factor(c("a", "b", "a"), levels=c("a", "b", "c"))
tbl <- table(fac)
tbl

## fac
## a b c 
## 2 1 0

这应该用 knitr/kable 打印得很好 html table:

library(knitr)
kable(tbl)

但是错误来了:

"Error in dn[[2L]] : subscript out of bounds".

我假设 table:

的 dimnames 有问题
attributes(tbl)
## $dim
## [1] 3
## 
## $dimnames
## $dimnames$fac
## [1] "a" "b" "c"
## 
## 
## $class
## [1] "table"

是否有 "repair" kable dimnames 的选项?我只想打印这个 "simple" table - 也许我遇到了一些简单的问题?

此处描述了 "table" 与因子的用法:http://www.stat.berkeley.edu/~s133/factors.html

最近几天我阅读了很多关于'pander'-包的内容。如果我用 pander 打印 table,它就可以工作。为什么?我应该改用 pander 吗?

pander(tbl)

你可以试试

> kable(t(as.matrix(tbl)))
#
#|  a|  b|  c|
#|--:|--:|--:|
#|  2|  1|  0|