按日期间隔索引数据帧 [英] Indexing dataframe by date interval

查看:85
本文介绍了按日期间隔索引数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据框,一列包含
数百个日期格式的日期,例如:

I have a dataframe with one column that contains several hundreds of dates in Date format e.g.:

as.Date(c("2011-08-13","2011-09-13","2010-06-12","2012-09-13","2010-09-13","2012-05-26","2012-07-20"))

现在我只想选择行,其中15.03 <日期< 15.8(所有日期在10月15日至10日之间,不考虑年份)。有没有一种简单的方法来选择(索引)在这样一个
的方式?

Now I'd like to select only the rows where 15.03 < date < 15.8 (all Dates between 15th march and 15th october, disregarding the year). Is there a simple way to select (index) in such a way?

我略微修改了答案我接受如下:

I slightly modified the answer I accepted, as below:

a <- as.Date(c("2011-08-13","2011-09-13","2010-06-12","2012-09-13","2010-09-13","2012-05-26","2012-07-20"))
lower <- as.Date("03-15",format="%m-%d")
upper <- as.Date("08-15",format="%m-%d")
a[format(a,"%m-%d") < format(upper,"%m-%d") & format(a,"%m-%d") > format(lower,"%m-%d")]
[1] "2011-08-13" "2010-06-12" "2012-05-26" "2012-07-20"


推荐答案

base ,想法是使用函数格式

a <- as.Date(c("2011-08-13","2011-09-13","2010-06-12","2012-09-13","2010-09-13","2012-05-26","2012-07-20"))
lower <- as.Date("2012-03-15")
upper <- as.Date("2012-08-15")
a[format(a,"%m-%d") < format(upper,"%m-%d") & format(a,"%m-%d") > format(lower,"%m-%d")]
[1] "2011-08-13" "2010-06-12" "2012-05-26" "2012-07-20"

这篇关于按日期间隔索引数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆