22

我想在Date当前月份的开始日期(01)中设置月份中的某天。现在我使用以下内容:

currentDate <- Sys.Date()  #for getting current system date eg:2012-11-06
formatDate <- format(currentDate, "%Y-%m")  #it return 2012-11
startDate <- as.Date(paste(formatDate, "-01", sep = ""))
# 2012-11-01 

有什么简单的方法可以做到这一点?

4

5 回答 5

35

是的,有一个使用函数的单行代码cut

cut(Sys.Date(), "month")
[1] 2012-11-01
Levels: 2012-11-01
于 2012-11-06T09:27:42.077 回答
17

还有一行使用格式功能:

format(Sys.Date(),"01-%m-%Y")
[1] "01-06-2017"
于 2017-06-19T09:34:39.730 回答
13

lubridate'sfloor_date保持日期

library(lubridate)

floor_date(Sys.Date(), "month")
于 2018-05-08T15:18:41.190 回答
2
as.Date(paste0(format(Sys.Date(), "%Y-%m"), "-01"))
于 2017-12-28T00:41:28.853 回答
2

使用lubridate(也与sec, min, hour,mon等一起使用year

library(lubridate)

dt <- Sys.Date()
day(dt) <- 01

dt
# [1] "2018-01-01"
于 2018-01-17T01:32:35.903 回答