r - 文档中代码块的内联引用
问题描述
假设有如下代码块:
```{r mean diff}
(5-mean(dnorm(40,5,2))/5
```
我希望能够在降价文档中以内联形式引用此代码块及其标签,以便将引用替换为此块的输出。有没有办法做到这一点?
" the difference is `r mean diff` %." ##something like this?
解决方案
我认为您的问题的答案是“是的,但这很棘手”。默认情况下knitr
不保存在代码块中计算的最后一个值。在常规代码中,计算的最后一个值保存在 中.Last.value
,但knitr
不模拟这一点。
然而,一个简单的修改可以让你做一些非常相似的事情:
```{r}
meandiff <- 5-mean(dnorm(40,5,2))/5
meandiff # if you want the chunk to print its value
```
然后在文本中,使用
" the difference is `r meandiff` %."
如果您真的想保存最后一个值,可以通过设置“渲染挂钩”来实现。例如,下面的代码保存最后一个值,然后调用旧的钩子:
```{r}
.Last.value <- NULL
old_hook <- knitr::opts_chunk$get("render")
knitr::opts_chunk$set(render = function(x, options, ...) {
.Last.value <<- x
if (!is.null(old_hook))
old_hook(x, options, ...)
else
knitr::knit_print(x, options, ...)
})
```
```{r mean diff}
5-mean(dnorm(40,5,2))/5
```
The value was `r .Last.value`.
推荐阅读
- node.js - 如何使用 Webpack Hot Middleware / Webpack Hot Reload with IIS Rewrite / relative base Url?
- phpstorm - PhpStorm 了解 bootstrap-vue 吗?
- python - 如何获取超大文本文件中的第 n 个字符?
- c# - 单行 - 文本框不会在文本输入中滚动到最后
- javascript - 在asp dotnet core 3中将后端权限转移给客户端
- string - 将带有空值和空字符串的雪花表复制到可以使用 psql 复制命令导入的 csv
- python - 使用 MDAnalysis 从 MD 轨迹文件中提取一个链
- python - 使用 ConvLSTM2d,然后使用带有 Keras、Tensorflow 2.0 的 CNN?
- c# - 按本地化枚举排序
- wso2 - 我们如何配置新的 XML 字段以在 WSO2 工作流中的 Datamapper 调解器之后请求?