knitr中非数字变量的内联代码块

时间:2016-03-13 21:52:10

标签: r knitr r-markdown

我正在尝试使用内联R Markdown代码来访问因子的第一级。如果我使用块,我可以让它工作,但如果我使用内联,我可以。

所以虽然这有效:

```{r}
as.character(iris$Species[1])
```

这不是:

`r as.character(iris$Species[1])`

如果我保存缓存并将文档编织两次,我可以运行内联版本。我发现这有点奇怪,因为数字变量表现不同。因此,例如,这可以在不必编织两次的情况下工作

`r mean(iris$Sepal.Length)` 

1 个答案:

答案 0 :(得分:0)

对不起。我发现了问题所在。我找到了一个我从here获取的内联钩子,结果导致了问题:

```{r, echo = FALSE}
inline_hook <- function(x){
    if(is.numeric(x)){
      paste(format(x,digits = 2))
    }
   }
knitr::knit_hooks$set(inline=inline_hook)
```