在rmarkdown中使用kable打印因子的频率表

时间:2015-06-23 16:04:48

标签: r knitr r-markdown pander

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

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

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

这应该在一个漂亮的html表格中用knitr / kable打印出来:

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"

有没有选择&#34;修复&#34;科梅的名字?我只想打印这个&#34;简单&#34;表 - 也许我很容易陷入困境?

使用&#34;表&#34;这里描述了因素:http://www.stat.berkeley.edu/~s133/factors.html

最近几天我读了很多关于'pander&#39; -package的文章。如果我用平移器打印表,它可以工作。为什么?我应该切换到pander吗?

pander(tbl)

1 个答案:

答案 0 :(得分:5)

你可以尝试

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