7

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

1 回答 1

11

谢谢你的客气话和好问题。中还有一个尚未详细记录的功能pander,但您也可以将 R 函数作为默认表格对齐方式传递。快速演示:

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

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

于 2014-11-19T10:28:06.857 回答