2017-11-14 21 views
5

rmarkdown 문서를 매개 변수화에 대한 단일 레벨 목록/사전을 사용하는 동안 작동 :R Markdown의 YAML 메타 데이터에 다단계 사전을 만드는 방법은 무엇입니까?

--- 
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 
``` 

왜 전혀 parametrizing 코드 블록 대신에 다음 yaml을 사용을 사용하여 달성 될 수있다, 아래에 주석으로?

+1

두 레벨 만 사용할 수 있으며 두 번째 레벨 이름은 '값'이어야합니다. 이것을보십시오 :'params : first_level : value : ~'. 'value'를'second_level'로 변경하면 에러가 발생합니다 ... –

+0

'! r list (second_level = NULL)'에'first_level'의 내용을 넣으면 원하는 것을 만들지 만'yaml'의 사용을 로 시작 ... – balin

+1

나는 이것이'rmarkdown :: render()'가 작동하기 때문에) RStudio IDE의 버그라고 생각한다. https://github.com/rstudio/rstudio/issues에 등록 할 수 있습니다. 감사! –

답변

2

params은 R Markdown의 특수 필드이며 매개 변수의 값을 지정하는 데 두 가지 방법 중 하나를 사용해야합니다. 값이 목록 (예 : 스칼라)이 아닌 경우에는 다음을 사용하여 지정할 수 있습니다. 정상적인 YAML 구문; 그러나 목록 인 경우 R Markdown은 value이라는 하위 필드를 예상하며이 값은이 하위 필드에 지정되어야합니다. 귀하의 경우에는, 당신은 value 분야, 예를 들어, 현재 by design입니다

--- 
params: 
    first_level: 
    value: 
     second_level: ~ 
--- 

```{r} 
params 
``` 

를 사용해야합니다.

+0

이 점을 지적 해 주셔서 감사합니다. 그러나 불편할 수도 있습니다 ... – balin