热线电话:13121318867

登录
2019-03-08 阅读量: 706
按日期和月份选择时间段

我有一个按年组织的数据框。例如:date < - seq(as.Date(“2001-07-20”),as.Date(“2010-12-31”),by = 1)

现在我想通过使用两个时间段来选择子集:2004年至2008年6月23日至7月13日和7月20日至8月9日。你能提供一些线索吗?谢谢!

是的,它可以通过以下方式解决:test [%%之间的%c(“2004-07-20”,“2004-08-09”)] ...但是我的数据有很多年了,代码可以很重复。我想知道它是否可以解决如下:

df $ md < - 格式(as.Date(df $ date),“%m-%d”)df < - df [df $ md%in%c(as.Date(06-23):Date(07-) 13),日期(07-20):日期(08-09))和年%%(2004:2008),]

它不起作用:as.Date.numeric(6 - 23)中的错误:必须提供'origin'

解决办法:您可以构建感兴趣的范围和子集:

library(lubridate)

date <- seq(as.Date("2001-07-20"),as.Date("2010-12-31"),by = 1)

range1 <- as.Date(unlist(lapply(c(0:4),function(y) seq(as.Date("2004-06-23"),as.Date("2004-07-13"),by="1 day") + years(y))))

range2 <- as.Date(unlist(lapply(c(0:4),function(y) seq(as.Date("2004-07-20"),as.Date("2004-08-09"),by="1 day") + years(y))))

date[date %in% range1 | date %in% range2]

8.6399
5
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子