我目前大多数的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
-----------------------------
因此,这里的技巧是定义一个仅接受一个参数进行分析的函数,该函数返回列对齐参数的向量。