我有一个按年组织的数据框。例如: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]








暂无数据