在pander中更改默认对齐方式(pandoc.table)

时间:2014-11-19 10:11:10

标签: r knitr r-markdown pander

我目前正在切换到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
 ))

1 个答案:

答案 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     
-----------------------------

所以这里的技巧是定义一个只需要分析一个参数的函数,并返回列对齐参数的向量。