我目前大多数的pander格式都切换为knitr-markdown,因为它提供了如此强大的pandoc支持。我不满意的一件事是默认的中心对齐。营销人员可能会喜欢它,但是对于技术报告来说却是恐怖的。

Hmisc使用的最佳选择是默认情况下对文本和日期使用左对齐,对所有类型的数字使用右对齐。

有没有一种简单的方法可以在pander中进行全局设置?

library(pander)
pander(data.frame(
     name          = letters[1:3],
     size          = 1:3,
     we.have.dates = Sys.Date() - 1:3
 ))

最佳答案

感谢您的客气话和重大问题。 pander中尚没有完善的文档功能,但是您也可以将R函数作为default table alignment传递。快速演示:

> panderOptions('table.alignment.default',
+     function(df) ifelse(sapply(df, is.numeric), 'right', 'left'))
> pander(data.frame(
+     name          = letters[1:3],
+     size          = 1:3,
+     we.have.dates = Sys.Date() - 1:3
+ ))

-----------------------------
name     size we.have.dates
------ ------ ---------------
a           1 2014-11-18

b           2 2014-11-17

c           3 2014-11-16
-----------------------------


因此,这里的技巧是定义一个仅接受一个参数进行分析的函数,该函数返回列对齐参数的向量。

08-05 11:43