2016-10-18 2 views
1

차트를 생성하고 일부 텍스트가있는 R 보고서가 있습니다. 텍스트에는 데이터 프레임을 기반으로 한 이전 주에 대한 참조가 포함되어 있습니다.RMarkdown 보고서 매개 변수화

실행할 수 없습니다. 아래는 코드입니다. 사람이 문제를

를 볼 수 있습니까 나는 다음과 같은 오류 메시지가

Error in yaml::yaml.load(enc2utf8(string), ...) : Scanner error: mapping values are not allowed in this context at line 5, column 9 Calls: ... yaml_load_utf8 -> mark_utf8 -> -> .Call Execution halted

--- 
title: "Foo" 
author: "John Smith" 
date: "18 October 2016" 
output: word_document 
    params: 
    weeknr: !r max(data$WEEKNRs) 
--- 

```{r} 

# creates the dataframe referenced in the header 
source('transform.R') 

``` 

All, 

Please find below [attached](www.stackexchange.com) report for week ``r params$weeknr`` 
+0

혹시 지구 환경의 데이터가 맞나요? 여러분은 여러분의 markdown 문서 자체에 데이터를 생성해야합니다. Rmarkdown은 자체 포함 스크립트로 제작되었으므로 다른 스크립트로 작성된 개체를 전역 환경에 가져 오지 않습니다. 즉, Rmarkdown을 렌더링 함수로 호출하지 않는 한 param 섹션에서 객체를 사용할 수 없습니다. – MorganBall

+0

weeknr을 임의의 값으로 설정 한 다음 'render (rmarkdowndoc.rmd, params = (weeknr = max (data $ WEEKNRs))'를 호출하십시오. – MorganBall

+0

안녕하세요 @Morgan, 변수 자체는 기본적으로 데이터 프레임의 마지막 주 데이터입니다'data Rmarkdown은 이것을 받아 들일 수 있습니까? 두 번째 주석에서이 정보는 R 청크에 저장됩니다. –

답변

1

를 얻을 당신이 얻을 오류입니다 때문에 당신 word_document 다음 줄에 params: 들여 쓰기.

이 헤더에 코드를 가질 수 있습니다,하지만 당신은 당신의 경우 YAML current date in rmarkdown

쉽게 볼 수있게하기 위해 제목 태그를 사용하여 뭔가를 (사용을 참조 다르게 포맷해야 결과 :

--- 
title: "`r source('transform.R'); max(data$WEEKNRs)`" 
---