R: 用 pander 打印 table

R: print table with pander

当使用 pander 打印 table 时,我收到一条我无法理解的错误消息 Error in pandoc.table.return(...) : Wrong number of parameters (76 instead of *4*) passed: justify

a <- table(mtcars$mpg, mtcars$cyl)
pander(a)

回溯:

6. stop(sprintf("Wrong number of parameters (%s instead of *%s*) passed: justify", length(justify), length(t.width)))
5. pandoc.table.return(...)
4. cat(pandoc.table.return(...))
3. pandoc.table(x, caption = caption, ...)
2. pander.table(a)
1. pander(a)

我做错了什么?我的目标是以 table 格式打印 table(变量 1 的值作为行名,变量 2 的值作为列名),而不是像我转换 table 到数据帧中(第 1 列中变量 1 的值,第 2 列中变量 2 的值,第 3 列中的频率)。我知道它可以与 print 一起使用,但我想要 pander 布局,因为我的所有其他 tables(来自数据框格式)都是用 pander 打印的。

我意识到我忘了,但我在某个地方找到了:

panderOptions('table.alignment.default',
     function(df) ifelse(sapply(df, is.numeric), 'right', 'left'))

替换为:

panderOptions('table.alignment.default',
     function(df) ifelse(sapply(as.data.frame(df), is.numeric), 'right', 'left'))

工作正常。

感谢@daroczig 找到它。