knitr:不打印前导零

时间:2016-08-31 10:00:16

标签: r printing knitr

我使用knitr将R集成到LaTeX中,其中以零开头的小数应该打印而不是零。例如

0.05 =>  .05
0.5  =>  .5
1.5  => 1.5

是否有一种简单的方法让knitr能够内联?

1 个答案:

答案 0 :(得分:4)

当输出为数字且介于-1和1之间时,您可以重新定义内联挂钩以删除0。

---
output:  pdf_document
---

```{r echo=FALSE}
library(knitr)
knit_hooks$set(inline =
  function (x) {
      if (is.numeric(x)) {
          x = round(x, getOption("digits"))
          if (x < 1 & x > -1) {
            x = sub("0\\.","\\.",as.character(x)) 
          }

      }
      paste(as.character(x), collapse = ", ")
      }
  )
```


Sepal and Petal lengths (r = `r cor(iris$Sepal.Length, iris$Petal.Length)`) ; 
Sepal length and width (r = `r cor(iris$Sepal.Length, iris$Sepal.Width)`)