R Markdown:在参数中设置星期日的开始

问题描述 投票:1回答:1

我正在尝试将Markdown参数设置为一周的第一天。我尝试执行以下代码,但日期转换似乎有错误。以下是降价代码。

---
title: "Sample Markdown"
author: "ABC"
date: "`r format(Sys.time(), '%d %B, %Y')`"
tables: yes
output: html_document
params:
  dts: 
    label: "Start Date"
    input: date
    value: !r as.Date(round(as.IDate(as.character(Sys.Date()), "%m-%d-%Y"), "week")-1)
    max: !r Sys.Date()
  dte: 
    label: "End Date"
    input: date
    value: !r Sys.Date()-1
    max: !r Sys.Date()

---

```{r setup, include=TRUE,echo=FALSE,message=FALSE}
knitr::opts_chunk$set(echo = TRUE)
options(java.parameters = "-Xmx32000m")
dt_start=as.character(as.Date(params$dts))
dt_end=as.character(as.Date(params$dte))

print(dt_start)
print(dt_end)
```
r r-markdown
1个回答
0
投票

lubridate包有一些很好的功能。这是使用floor_date的示例。

---
title: "Sample Markdown"
author: "ABC"
date: "`r format(Sys.time(), '%d %B, %Y')`"
tables: yes
output: html_document
params:
  dts: 
    label: "Start Date"
    input: date
    value: !r lubridate::floor_date(Sys.Date(), 'week')
    max: !r Sys.Date()
  dte: 
    label: "End Date"
    input: date
    value: !r Sys.Date()-1
    max: !r Sys.Date()
---

```{r setup, include=TRUE,echo=FALSE,message=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(lubridate)
options(java.parameters = "-Xmx8000m")
dt_start=params$dts
dt_end=params$dte

print(dt_start)
print(dt_end)
```
© www.soinside.com 2019 - 2024. All rights reserved.