带日期输入的R函数

时间:2019-06-24 17:02:11

标签: r function date posixct

我正在自动执行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 / DateMaxPOSIXct命令在函数中强制POSIXltlubridate,但是仍然会导致相同的错误。也许我对功能的理解是问题所在,但这似乎是问题所在。

在我的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")

0 个答案:

没有答案