使用单级列表/字典来参数化rmarkdown
文档时可以使用:
---
params:
first_level: ~
---
```{r}
params
```
和编织返回预期的
## $first_level
## NULL
我无法使用多级列表/字典作为编织
---
params:
first_level:
second_level: ~
---
```{r}
params
```
生成Error: no value field specified for YAML parameter 'first_level'
Execution halted
,我希望
## $first_level
## $first_level$second_level
## NULL
是否真的只支持一个级别列表或者我搞砸了什么?
正如我在下面评论的那样,可以使用
实现预期的输出---
params:
first_level: !r list(second_level = NULL)
---
```{r}
params
```
但是为什么要使用yaml
代替参数化代码块?
答案 0 :(得分:2)
params
是R Markdown的特殊字段,您必须使用以下两种方法之一来指定参数的值:如果值不是列表(例如,标量),则可以指定它使用正常的YAML语法;但是,如果它是一个列表,则R Markdown需要一个名为value
的子字段,并且必须在该子字段中指定该值。在您的情况下,您必须使用value
字段,例如,
---
params:
first_level:
value:
second_level: ~
---
```{r}
params
```
目前是by design。