【问题标题】:R Querying Dates in one data frame with dates from a separate data frameR在一个数据框中查询日期,其中日期来自单独的数据框
【发布时间】:2013-02-07 21:52:00
【问题描述】:

搜索了几个小时后,我似乎找不到以下问题的解决方案。我有 2 个数据框,一个包含一列观察日期,另一个包含开始日期和结束日期:

例如:

head(x)
station temp obsdate
311820  65.0 1973-01-01
311821  62.0 1973-01-02
etc...

head(seasonDates)
season startDate    endDate
A      1973-11-01   1974-06-30
B      1974-11-01   1975-06-30
C      1975-11-01   1976-06-30
etc...

如果观察日期“obsdate”在“startDate”到“endDate”指示的日期范围内,我想将“seasonDates”数据框中的“season”分配给“x”数据框。非常感谢任何帮助。

【问题讨论】:

  • 我希望我可以使用条件来解决这个问题:ifelse(x$obsdate>=seasonDates$startDate,x$season=seasonDates$season,0)

标签: r date


【解决方案1】:

假设三个日期列属于“日期”类:

library(sqldf)
sqldf("select * from x left join seasonDates on
        (obsdate between startDate and endDate)")

【讨论】:

  • 感谢您提供此解决方案。出于某种原因,当我运行它时,我最终得到了重复匹配,其中一个重复行匹配不正确。但是,如果我将开始日期转换为数字,则效果很好。我检查了所有日期都属于“日期”类,并寻找明显的错误。显然,我的 SQL 天赋并不出色,所以我怀疑这与我尝试使用左连接的方式有关。非常感谢!
  • @austin,如果您以可复制的形式发布或发送给我,我可以查看。
  • 您已经帮了很大的忙,我不想再占用您的时间了。我确信它在我身边,我需要花时间更新我的 SQL 技能集。谢谢你的提议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
相关资源
最近更新 更多