我正在自动执行R Markdown以使用参数进行报告。单独地,下面的所有行都是手动工作的,但是一旦我将命令包装在一个函数中并为“%Y-%m-%d”格式的函数参数提供日期,就会收到此错误:
错误:
Error in as.POSIXlt.character(x, tz, ...) :
character string is not in a standard unambiguous format
功能:
render_reports <- function(SiteName, DateMin, DateMax){
parameters <- list(SiteName = SiteName, DateMin = DateMin, DateMax = DateMax)
# Input and Output Directories
rmd_dir <- ""
rmd_name <- "Quarterly_Reporting_RMD.Rmd"
rmd_path <- paste(rmd_dir, rmd_name, sep = "/")
word_dir <- "./Reports"
word_name <- sprintf("%s", SiteName)
word_path <- paste(word_dir, word_name, sep = "/")
# Render the RMarkdown Report
rmarkdown::render(
input = rmd_name,
output_format = word_document(reference_docx = "word-styles-reference.docx"),
output_file = word_name,
output_dir = word_dir,
params = parameters
)
}
我尝试使用各种DateMin
/ DateMax
和POSIXct
命令在函数中强制POSIXlt
和lubridate
,但是仍然会导致相同的错误。也许我对功能的理解是问题所在,但这似乎是问题所在。
在我的R降价促销中,我使用as.POSIXct()
处理日期。从Markdown GUI进行编织以及使用rmarkdown::render()
都可以很好地工作。
编辑-Markdown YAML:
这是R Markdown文档中使用的Markdown YAML的代码段。
---
output:
word_document:
reference_docx: word-styles-reference-01.docx
params:
DateMin:
format: yyyy-mm-dd
input: date
label: "Date Start"
startview: month
value: yyyy-mm-dd
DateMax:
format: yyyy-mm-dd
input: date
label: "Date End"
startview: month
value: yyyy-mm-dd
SiteName:
choices: ["Florida", "New York", "Washington"]
input: select
label: "Site Name"
value: Florida
---
示例内联函数调用:
render_reports(SiteName = "Florida", DateMin = "2016-01-01", DateMax = "2018-12-01")