Я автоматизирую уценку R для создания отчетов с параметрами. Все строки ниже по отдельности работают вручную, но как только я обертываю команды в функцию и предоставляю даты аргументу функции в формате «% 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 Markdown я использую as.POSIXct()
для обработки дат. Вязание из Markdown GUI, а также использование rmarkdown::render()
отлично работают самостоятельно.
Редактировать - Уценка YAML:
Ниже приведен фрагмент YAML Markdown, используемый в документе R Markdown.
---
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")