Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的当前日期获取上个月的开始日期和结束日期_R_Date - Fatal编程技术网

从R中的当前日期获取上个月的开始日期和结束日期

从R中的当前日期获取上个月的开始日期和结束日期,r,date,R,Date,从R中的当前日期获取上个月的开始日期和结束日期是否有简单的方法 我只有当前日期。从中,我想得到上个月,上个月的开始日期,上个月的结束日期 currentDate<-Sys.Date() #return today's date as "2012-11-07" currentDate许多软件包都有方便的日期功能,但要实现自己的功能: 月初功能: som <- function(x) { as.Date(format(x, "%Y-%m-01")) } 本月初: som(som(

从R中的当前日期获取上个月的开始日期和结束日期是否有简单的方法

我只有当前日期。从中,我想得到上个月,上个月的开始日期,上个月的结束日期

currentDate<-Sys.Date() #return today's date as "2012-11-07"

currentDate许多软件包都有方便的日期功能,但要实现自己的功能:

月初功能:

som <- function(x) {
  as.Date(format(x, "%Y-%m-01"))
}
本月初:

som(som(Sys.Date()) - 1)
[1] "2012-10-01"

您可以使用库lubridate,它非常擅长进行日期算术

library(lubridate)

currentDate <-Sys.Date()
# end of previous month:
eopm <- currentDate - days(day(currentDate))
# [1] "2012-10-31"

# start of previous month:
sopm <- currentDate - days(day(currentDate))
sopm <- sopm - days(day(sopm) - 1)
# [1] "2012-10-01"
库(lubridate)

currentDate使用
lubridate
这是小菜一碟:

library(lubridate)
floor_date(Sys.Date() - months(1), "month")
在R中有很多好的库。看起来你需要的一切都已经创建好了

更新版本:

library(lubridate)
floor_date(as.Date("2011-03-29"), "month") - months(1)

此选项已更正,可以在3月29日正常工作。

lubridate软件包的另一个选项是使用回滚功能,正如描述所述,该功能可以准确地执行此操作

回滚将日期更改为上个月的最后一天或当月的第一天。或者,新日期可以保留相同的小时、分钟和秒信息

库(lubridate)

currentDate上月开始日期:

format(Sys.Date() - 30, '%Y-%m-01')
上月结束日期:

as.Date(format(Sys.Date(), '%Y-%m-01')) - 1

使用
timeperiodsR
获取任何时段的开始和结束日期

#安装程序包(“timeperiodsR”)
timeperiodsR::上个月()

请发布示例数据、预期结果,并展示您尝试过的内容。下个月的开始和结束日期如何?此解决方案是错误的,例如,
截止日期(“2011-03-29”)-月(1),“月”)
给出了NA.Andre,您是对的。非常感谢。这也应该适用于03-29:截止日期(“2011-03-29”),“月”)-月(1)这是一个聪明的日期:)
library(lubridate)

currentDate <- Sys.Date()

end_last_month <- rollback(currentDate)

init_last_month <- rollback(end_last_month, roll_to_first = TRUE)
format(Sys.Date() - 30, '%Y-%m-01')
as.Date(format(Sys.Date(), '%Y-%m-01')) - 1