YAML 현재 날짜(rmarkdown)
현재 날짜를 YAML 앞에 넣는 요령이 있는지 궁금합니다..rmd
처리할 문서knitr
그리고rmarkdown
꾸러미위키 페이지 맨 위에 다음 줄이 있었는데,
_baptiste, `r format(Sys.time(), "%d %B, %Y")`_
그리고 그것은 html 출력에서 2014년 5월 3일 baptiste로 변환될 것입니다.이제, 나는 제공되는 고급 pandoc 래퍼를 이용하고 싶습니다.rmarkdown
하지만 YAML 헤더에 r 코드가 있는 것은 작동하지 않는 것 같습니다.
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: `r format(Sys.time(), "%d %B, %Y")`
author: baptiste
---
Error in yaml::yaml.load(front_matter) :
Scanner error: while scanning for the next token at line 6, column 7
found character that cannot start any token at line 6, column 7
Calls: <Anonymous> ... output_format_from_yaml_front_matter ->
parse_yaml_front_matter -> <Anonymous> -> .Call
해결책이 있습니까?
이것은 약간 까다롭지만, 당신은 단지 그것을 만들기만 하면 됩니다.date
필드는 인라인 R 식을 따옴표로 묶어서 YAML에서 유효합니다.
date: "`r format(Sys.time(), '%d %B, %Y')`"
그러면 구문 분석 오류가 사라지고 날짜가 마크다운 출력에 생성되어 Pandoc이 다음 값을 사용할 수 있습니다.Sys.time()
.
@Yihui에 대한 후속 조치입니다.이상하게도, 저는 다음과 같은 것을 발견했습니다.
'`r format(Sys.Date(), "%B %d, %Y")`'
다음보다 더 잘 작동함:
"`r format(Sys.Date(), '%B %d, %Y')`"
후자의 경우 RStudio는 외부 인용문을 다음으로 변경합니다.'
HTML과 PDF 출력 사이를 전환하여 코드를 해독할 수 있습니다.
또는 큰따옴표를 한 번만 따옴표로 묶고 그 반대의 경우에는, 이것이 잘 작동합니다.
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: '`r format(Sys.time(), "%d %B, %Y")`'
author: baptiste
---
한 가지 해결 방법은brew
당신의 YAML 프론트 물질을 포장하고 작성합니다.brew
견본의
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: <%= format(Sys.time(), "%d %B, %Y") %>
author: baptiste
---
이제 사용할 수 있습니다.brew_n_render
다음을 사용하여 문서를 사전 처리하는 함수brew
그리고 나서 달려들어요.rmarkdown
.
brew_n_render <- function(input, ...){
output_file <- gsub("\\.[R|r]md$", ".html", input)
brew::brew(input, 'temp.Rmd'); on.exit(unlink('temp.Rmd'))
rmarkdown::render('temp.Rmd', output_file = output_file)
}
이 기능을 사용할 수 있도록 하려면 다음과 같이 하십시오.KnitHTML
RStudio에서 버튼을 누르면 자동으로 사용할 사용자 지정 출력 형식을 작성할 수 있습니다.brew
프리프로세서로서.사용.brew
사전 처리를 통해knitr
문서의 코드 청크는 전처리 단계에서 변경되지 않습니다.이상적으로,rmarkdown
패키지는 API의 메타데이터를 노출하고 사용자가 사용자 정의 함수를 통해 실행할 수 있도록 해야 합니다.
또는 새 형식의 쿼트를 사용하는 경우 https://quarto.org ..qmd 파일의 yaml 헤더에서 이 작업을 수행할 수 있습니다.
——-
title: title of my doc
date: today
format:
html:
theme: default
——-
포맷 옵션은 여기에서 확인하십시오.
예를 들어,
date: 03/07/2005
date-format: long
또는 다음과 같은 것을 참조하십시오. R 마크다운 매개 변수화된 보고서
params:
reportDate:
input: date
label: 'Report Date:'
value: as.POSIXct(Sys.Date())
저도 같은 문제에 대해서요.저는 이 코드를 사용하여 그것을 해결합니다.
---
title: "bla bla"
author: "My name"
date: \`r format(Sys.Date(), "%B %d, %Y")`\
output: html_document
---
업데이트 다른 형식도 사용할 수 있습니다.
---
title: "bla bla"
author: "My name"
date: \`r format(Sys.Date(), "%m %d,%Y")`\
output: html_document
---
최고야
저는 오늘 이것에 물렸습니다.나는 가지고 있었습니다
date: "`r format(Sys.Date(), "%B %d, %Y")`"
그리고 OP와 거의 동일한 오류를 얻었지만, 단어에 뜨개질을 할 때만 발생했습니다.워드에 뜨개질을 시도하기 전에는 pdf로 뜨개질하는 것이 괜찮았습니다.그 후에도 그것은 작동하지 않았습니다.
Error in yaml::yaml.load(front_matter) :
Scanner error: while scanning for the next token at line 3, column 31
found character that cannot start any token at line 3, column 31
Calls: <Anonymous> ... output_format_from_yaml_front_matter ->
parse_yaml_front_matter -> <Anonymous> -> .Call`
위치 31은 첫 번째 % 기호입니다.
이 항목을 다음 항목으로 대체
date: '`r format(Sys.Date(), "%B %d, %Y")`'
MLaVoie의 조언대로, 잘 작동했습니다.
저는 왜 이런 일이 일어났는지 전혀 모르고, 저는 땅을 파러 갈 시간이 없습니다. - 보고서를 끝내야 합니다.
언급URL : https://stackoverflow.com/questions/23449319/yaml-current-date-in-rmarkdown
'programing' 카테고리의 다른 글
dbms_output을 사용합니다..sql 파일에 대한 Datagrip에 put_line (0) | 2023.06.08 |
---|---|
로컬 호스트에서 사용 가능한 포트 번호를 선택하려면 어떻게 해야 합니까? (0) | 2023.06.08 |
php 스프레드시트 라이브러리를 사용하여 배열에서 시트로 데이터 쓰기 (0) | 2023.06.08 |
AMD 프로세서를 사용하여 AVD를 시작하는 중 오류 발생 (0) | 2023.06.08 |
jOOQ가 DSL.condition()의 값을 바인딩하지 않습니다. (0) | 2023.06.08 |