Функция R с вводом даты - PullRequest
1 голос
/ 24 июня 2019

Я автоматизирую уценку 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...