我有一个数据框(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做到这一点?我会很高兴得到任何帮助。非常感谢。
答案 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"