Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
knitr中非数值变量的内联代码块_R_Knitr_R Markdown - Fatal编程技术网

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

knitr中非数值变量的内联代码块,r,knitr,r-markdown,R,Knitr,R Markdown,我试图使用内联R标记代码来访问因子的第一级。如果我使用块,我可以让它工作,但如果我内联使用它,就不行了 因此,尽管这起作用: ```{r} as.character(iris$Species[1]) ``` 这并不是: `r as.character(iris$Species[1])` 如果我保存缓存并编写两次文档,就可以运行内联版本。我只是觉得这有点奇怪,因为数字变量的行为不同。比如说,这种方法不用织两次就行了 `r mean(iris$Sepal.Length)` 对不起。我发现了问

我试图使用内联R标记代码来访问因子的第一级。如果我使用块,我可以让它工作,但如果我内联使用它,就不行了

因此,尽管这起作用:

```{r}
as.character(iris$Species[1])
```
这并不是:

`r as.character(iris$Species[1])`
如果我保存缓存并编写两次文档,就可以运行内联版本。我只是觉得这有点奇怪,因为数字变量的行为不同。比如说,这种方法不用织两次就行了

`r mean(iris$Sepal.Length)` 

对不起。我发现了问题所在。我发现了一个内联钩子,我从中取出了它,结果导致了问题:

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

内联钩子无法复制。如果我只使用内联代码创建一个
rmd
文件,并通过
rmarkdown::render(“inline.rmd”)
从控制台运行它,它就可以工作了。谢谢。是的,我应该在这里发布之前在干净的文件上试一下。事实证明,我已经为我的内联代码创建了一个在线钩子,将科学符号四舍五入到两位数。我不确定这为什么会给非数值变量带来问题,但显然是这样。