首页 > 解决方案 > 我可以运行和编织使用外部代码给出相同的结果吗?

问题描述

由于我有一些相当大的代码块(植物图表、sql),我更愿意将它们保留为外部文件。我在 knitr 手册中看到我可以做一些事情,比如code=readLines(...)引入外部资源。

以这种方式使用外部代码时,我发现在 RStudio 中使用绿色播放按钮运行块和编写代码之间的行为有所不同。

使用这两个文件:

主.R

---
title: "test"
author: "Me"
date: "6/17/2020"
output: html_document
---

```{r setup, include=FALSE}
library(here)
library(xfun)
```

```{r, code=xfun::read_utf8(here::here('test.R'))}
print('world')
```

test.R

print('hello')

当我编织时,hello是打印的。当我在 RStudio 中使用 run 或 运行代码块时,restart R and run all chunks预览会显示world. 这里print('world')只是为了说明正在运行内联代码;就我而言,内联代码将为空。

我在评论中看到“knitr 将用代码选项中的代码替换块中的代码”,但这是否意味着 knitr 不会在另一个环境中运行单独的块?我可以做些什么让外部代码由两者执行,而不是一个执行内联代码和另一个执行外部代码?

标签: rr-markdownknitr

解决方案


推荐阅读