根据因子日期对数据帧进行子集化

时间:2015-02-18 18:22:49

标签: r

我有一个数据框(df),其中一列是日期列。但是该列的类型是因子:

> head(df$date)
[1] 2011-01-01 2011-01-01 2011-01-01 2011-01-01 2011-01-01 2011-01-01
1519 Levels: 2010-11-27 2010-11-28 2010-11-29 2010-11-30 2010-12-01 2010-12-02 2010-12-03 2010-12-04 ... 2015-02-07

我想根据日期对此数据框进行子集化。例如,我想创建第二个数据框(df2),它是df的一个子集,其中日期小于2014-03-30。

我怎么能用R做到这一点?我会很高兴得到任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以开始探索lubridate库。它使日期工作非常简单。

df <- data.frame(date = c("2013-01-01", "2014-04-01", "2014-01-01",
                          "2011-06-01", "2012-03-01", "2014-08-01"))
df
        date
1 2013-01-01
2 2014-04-01
3 2014-01-01
4 2011-06-01
5 2012-03-01
6 2014-08-01

library(lubridate)
# ymd - year-month-day
df$date <- ymd(df$date)
with(df, df[date < ymd("2014-03-30"),])
[1] "2013-01-01 UTC" "2014-01-01 UTC" "2011-06-01 UTC" "2012-03-01 UTC"