haf*_*aff 18 r knitr r-markdown
是否可以在.Rmd中包含来自外部R脚本的代码并同时运行代码,显示代码并在输出.HTML文件中显示其结果?例如,如果我有
x <- 1
y <- 3
z <- x + y
z
Run Code Online (Sandbox Code Playgroud)
在external.R
.在输出文档中,我想看到上面的代码以及结果z
,即4.基本上,我想要相当于如果我在R块中复制/粘贴上面的内容会发生什么.所以我想要
```{r}
some.library::some.function("external.R")
```
Run Code Online (Sandbox Code Playgroud)
相当于
```{r}
x <- 1
y <- 3
z <- x + y
z
```
Run Code Online (Sandbox Code Playgroud)
在输出HTML文件中.我试过的东西像knitr::read_chunk('external.R)
和source('external.R
)',但这些不显示的代码.我错过了一些简单的事吗?
编辑
我发现这source('external.R', echo = TRUE)
将产生我的要求,但输出显示的代码/结果的每一行都是前缀##
.如果代码只是简单地复制/粘贴在.Rmd中的一个块中,任何方式都可以使它看起来像?
CL.*_*CL. 16
虽然接受的答案提供了一个简单而有效的解决方案,但我认为最常用的方法(无需修改外部脚本)是使用chunk选项code
将内容设置external.R
为块代码:
```{r, code = readLines("external.R")}
```
Run Code Online (Sandbox Code Playgroud)
spa*_*ian 10
有这样做的另一种方式,所以它看起来完全相同就像在降价文件中的代码.
你的external.R
档案:
## @knitr answer
x <- 1
y <- 3
z <- x + y
z
Run Code Online (Sandbox Code Playgroud)
你的Rmarkdown文件:
---
title: "Untitled"
output: html_document
---
```{r echo=FALSE}
knitr::read_chunk('external.R')
```
```{r}
<<answer>>
```
Run Code Online (Sandbox Code Playgroud)
您可以comment = NA
在代码中设置块选项.
例:
---
title: "Untitled"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(
echo = TRUE,
comment=NA)
```
## Example
```{r}
source("example.R", echo = T, prompt.echo = "", spaced = F)
```
Run Code Online (Sandbox Code Playgroud)
这产生了
归档时间: |
|
查看次数: |
3981 次 |
最近记录: |