我在 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 表中:
library(knitr)
kable(tbl)
但是这里出现了错误:
"Error in dn[[2L]] : subscript out of bounds".
我假设表的dimnames有问题:
attributes(tbl)
## $dim
## [1] 3
##
## $dimnames
## $dimnames$fac
## [1] "a" "b" "c"
##
##
## $class
## [1] "table"
是否有任何选项可以“修复” kable 的点名?我只想打印这个“简单”的表格——也许我被一些简单的东西困住了?
此处描述了“表”与因子的用法:http://www.stat.berkeley.edu/~s133/factors.html
最近几天我读了很多关于“pander”包的信息。如果我用 pander 打印表格,它会起作用。为什么?我应该切换到pander吗?
pander(tbl)
最佳答案
你可以试试
> kable(t(as.matrix(tbl)))
#
#| a| b| c|
#|--:|--:|--:|
#| 2| 1| 0|
关于r - 在rmarkdown中用kable打印一个因子的频率表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007915/