Knitr kable / pandoc / pander / geom_title / grid.table自定义单元格格式

时间:2014-07-18 14:53:31

标签: r ggplot2 knitr gridextra pander

我想在使用knitr的{​​{1}}函数时在某些数字之前和之后添加符号和字母,但不知道如何有效地执行此操作。但是,我也愿意考虑kable / pandoc,如果它更好/更有效。

最终结果应该是一个HTML表格......或者非常好的图形......

请参阅以下代码作为.Rmd文件中的模拟可重现示例:

pander

与Excel的格式类型的货币或会计类似,我希望值字段包含### Notional and Cumulative P&L ```{r echo=FALSE} Notional <- 10000 yday_pnl <- -2942 wtd_pnl <- 2300 mtd_pnl <- -3334 ytd_pnl <- 5024 yday_rtn <- (yday_pnl/Notional)*10000 wtd_rtn <- (wtd_pnl/Notional)*10000 mtd_rtn <- (mtd_pnl/Notional)*10000 ytd_rtn <- (ytd_pnl/Notional)*10000 Value <- c(Notional,yday_pnl,wtd_pnl,mtd_pnl,ytd_pnl) rtn <- c(NA,yday_rtn,wtd_rtn,mtd_rtn,ytd_rtn) COB.basics <- as.data.frame(cbind(Value,rtn)) rownames(COB.basics) <- c('Notional','yday pnl','wtd_pnl','mtd_pnl','ytd_pnl') ``` ```{r results='asis',echo=FALSE} kable(COB.basics,digits=2) ``` 列的$符号,而Value列我希望拥有字符串{数字之后的{1}} ...为了便于阅读,如果它在小数点之前,是否可以在三位数之后使用逗号?即代表数千人等。

还可以为细胞着色吗?并且还为文本/数字着色?即红色为负值?

1 个答案:

答案 0 :(得分:2)

pander的部分解决方案:

  1. Set&#34; big mark&#34;对于pander,以便它将用于所有数字:

    panderOptions('big.mark', ',')
    
  2. 您还可以将表格语法设置为rmarkdown(可选,因为现在rmarkdoen v2也使用Pandoc,其中multiline格式与rmarkdown格式相比具有一些很酷的功能之前提供的格式:

    panderOptions('table.style', 'rmarkdown')
    
  3. 您可以使用例如which和一些自定义R表达式:

    emphasize.strong.cells(which(COB.basics > 0, arr.ind = TRUE))
    
  4. 只需致电pander上的data.frame

    > library(pander)
    > emphasize.strong.cells(which(COB.basics > 0, arr.ind = TRUE))
    > panderOptions('big.mark', ',')
    > pander(COB.basics)
    
    -----------------------------------
        &nbsp;       Value       rtn   
    -------------- ---------- ---------
     **Notional**  **10,000**    NA    
    
     **yday pnl**    -2,942    -2,942  
    
     **wtd_pnl**   **2,300**  **2,300**
    
     **mtd_pnl**     -3,334    -3,334  
    
     **ytd_pnl**   **5,024**  **5,024**
    -----------------------------------
    
    > panderOptions('table.style', 'rmarkdown')
    > pander(COB.basics)
    |     &nbsp;     |  Value  |  rtn   |
    |:--------------:|:-------:|:------:|
    |  **Notional**  | 10,000  |   NA   |
    |  **yday pnl**  | -2,942  | -2,942 |
    |  **wtd_pnl**   |  2,300  | 2,300  |
    |  **mtd_pnl**   | -3,334  | -3,334 |
    |  **ytd_pnl**   |  5,024  | 5,024  |
    

  5. 要为单元格着色,您可以手动添加一些自定义HTML / CSS标记(如果长期使用pdf,则可以添加LaTeX),同样也可以添加%或其他符号/字符串。细胞与... pasteapply - 请随时在https://github.com/Rapporter/pander

    提交功能请求