在一系列日期中查找每月的最后一天

spo*_*234 2 r date lubridate dplyr

我有这样的日期序列

ds <- seq(as.Date("2011-02-01"), length=100, by="day")
Run Code Online (Sandbox Code Playgroud)

我想找到每个月最后几天的指数

我可以这样做

last_day <- seq(as.Date("2011-02-01"), length=10, by="1 month") - 1

which(ds %in% last_day)
Run Code Online (Sandbox Code Playgroud)

我的问题是我的日期序列不完整,有些日期缺失,有时这可能是最后一天.

例如,我删除了二月的最后一天

ds[ds == as.Date('2011-02-28')] <- NA
Run Code Online (Sandbox Code Playgroud)

新的最后一天现在应该是'2011-02-27'.

如何根据载体中的日期找到每个月的最后一个?这些日期跨越了几年.

nic*_*ola 5

尝试:

which(ave(as.numeric(ds),format(ds,"%Y%m"),FUN=function(x) x==max(x))==1)
Run Code Online (Sandbox Code Playgroud)