【问题标题】:Change default alignment in pander (pandoc.table)在 pander (pandoc.table) 中更改默认对齐方式
【发布时间】:2014-11-19 10:11:09
【问题描述】:

我目前正在为我的大部分knitr-markdown 格式切换到pander,因为它提供了非常棒的pandoc 支持。我不太满意的一件事是默认的中心对齐。营销人员可能会喜欢它,但对于技术报告来说,这是一种恐惧。

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

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

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

【问题讨论】:

    标签: r knitr r-markdown pander


    【解决方案1】:

    感谢您的客气话和好问题。 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     
    -----------------------------
    

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

    【讨论】:

    • 为什么不是默认值? pander 是由“营销人员”创建的吗?
    • 顺便说一下,我在我创建的一些 2 路表上使用了它。必须将您的 sapply 函数替换为 apply(df, 2, is.numeric) 才能正常工作。感谢您的回答!
    • @WaldirLeoncio 哇,我从来没有被称为“营销人员”:) 关于默认值:这些永远不会符合每个人的喜好,但这就是我创建全局 panderOptions 的原因——你可以把它也发给你的.Rprofile
    • 感谢您的回复以及使此类定制成为可能。另外,谢谢你对我的玩笑轻描淡写,我不是故意冒犯的。不过,我确实觉得这样的配置会安抚大多数使用 R 和 pander 的人,所以我恳请您考虑将其设为默认值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2017-09-08
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多