我在RMarkdown中手动运行代码时遇到了意外的行为:每当我们在r代码块中使用eval =
时:无论在本地还是在params
中都找不到其参数
使用eval
运行任何命令后,R会话也会崩溃。但是,编织文档不会产生错误。
这是示例RMD文件。 chunk1
可以正常运行。但是运行chunk2
或chunk3
会产生此错误:
Error in eval(ele) : object 'local_var[OR]params' not found`.
发生错误后,运行任何命令(例如chunk4
)都会使rstudio会话崩溃。
---
title: "tmp"
output: html_document
params:
eval_ind: TRUE
test: 3
---
```{r chunk1}
local_var <- 1+as.numeric(params$test)
knitr::opts_chunk$set(echo = TRUE)
```
```{r chunk2, eval = local_var ==4}
2+2
knitr::opts_chunk$set(echo = TRUE)
```
```{r chunk3, eval= params$eval_ind}
summary(cars)
```
```{r chunk4}
1+1
```
这是我的会话信息:
R version 3.5.0 (2018-04-23)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.5 LTS
Matrix products: default
BLAS: /usr/lib/libblas/libblas.so.3.6.0
LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8
[8] LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.0 tools_3.5.0 yaml_2.1.19 knitr_1.20
答案 0 :(得分:0)
我认为问题是您的标头中有一些错别字:
---
title: "tmp"
output: html_document
params:
eval_ind: TRUE
test: 3
---
title
不需要缩进,如果您希望它是test
而不只是另一个标头条目,则应该缩进param
。
进行这些更改为我解决了这个问题。