代码段中的`Eval`导致R Markdown崩溃

时间:2018-08-17 19:23:41

标签: r rstudio r-markdown

我在RMarkdown中手动运行代码时遇到了意外的行为:每当我们在r代码块中使用eval =时:无论在本地还是在params中都找不到其参数

使用eval运行任何命令后,R会话也会崩溃。但是,编织文档不会产生错误。

这是示例RMD文件。 chunk1可以正常运行。但是运行chunk2chunk3会产生此错误:

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    

1 个答案:

答案 0 :(得分:0)

我认为问题是您的标头中有一些错别字:

---
title: "tmp"
output: html_document
params:
  eval_ind: TRUE
  test: 3
---

title不需要缩进,如果您希望它是test而不只是另一个标头条目,则应该缩进param

进行这些更改为我解决了这个问题。