我目前正在切换到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
))
答案 0 :(得分:10)
谢谢你的客气话和好问题。 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
-----------------------------
所以这里的技巧是定义一个只需要分析一个参数的函数,并返回列对齐参数的向量。