3 回答

TA貢獻1802條經(jīng)驗 獲得超6個贊
這有點棘手,但是您只需要date通過引用內(nèi)聯(lián)R表達式來使字段在YAML中有效,例如
date: "`r format(Sys.time(), '%d %B, %Y')`"
然后解析錯誤將消失,日期將在markdown輸出中生成,因此Pandoc可以使用中的值Sys.time()。

TA貢獻1880條經(jīng)驗 獲得超4個贊
一種解決方法是使用該brew程序包,并將您的YAML前端問題寫為brew模板。
---
title: "Sample Document"
output:
html_document:
toc: true
theme: united
date: <%= format(Sys.time(), "%d %B, %Y") %>
author: baptiste
---
現(xiàn)在,您可以使用一個brew_n_render函數(shù),該函數(shù)將使用對文檔進行預(yù)處理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)
}
要使用KnitHTMLRStudio中的按鈕進行此操作,您可以編寫一種自定義輸出格式,該格式將自動brew用作預(yù)處理程序。使用brew進行預(yù)處理可確保knitr在預(yù)處理階段保持文檔中的代碼塊不變。理想情況下,rmarkdown程序包應(yīng)在其API中公開元數(shù)據(jù),并允許用戶通過自定義功能運行它。
- 3 回答
- 0 關(guān)注
- 1490 瀏覽
添加回答
舉報