4

我在 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".

我假设表的暗名存在问题:

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)
4

1 回答 1

6

你可以试试

> kable(t(as.matrix(tbl)))
#
#|  a|  b|  c|
#|--:|--:|--:|
#|  2|  1|  0|
于 2015-06-23T16:27:10.503 回答