r - 在 R 中按日期选择子集

标签 r date

我有一个文件,我需要只选择 2004 年之前出生的 child 。

示例

n_child     sex   date_born
     1        M  20/03/2002
     2        M  09/08/2001
     3        F  01/09/2003
     4        M  07/05/2003
     5        M  12/09/2004
     6        F  19/08/2004

我要

n_child     sex   date_born
     1        M  20/03/2002
     2        M  09/08/2001
     3        F  01/09/2003
     4        M  07/05/2003

我尝试了以下方法,但没有成功:

datesub <- (as.POSIXlt(df$date_born)$year)<2004
dat     <- df[datesub, ]

最佳答案

如果您愿意使用另一个软件包(lubridate),这应该可行。除此之外,Lubridate 还可以解析日期。只需使用 ymd('datestring') ,其中 y 是年份,m 是月份,d 是天数,按照它们在您尝试解析的字符串中出现的顺序排列。

> df
  n_child sex  date_born
1       1   M 20/03/2002
2       2   M 09/03/2001
3       3   F 01/09/2003
4       4   M 07/05/2003
5       5   M 12/09/2004
6       6   F 19/08/2004

> require(lubridate)
> df$dateborn <- dmy(df$date_born)
6 parsed with %d/%m/%Y
> datesub <- df[df$date_born < ymd(20040101),]
1 parsed with %Y%m%d

> datesub
  n_child sex  date_born
1       1   M 2002-03-20
2       2   M 2001-03-09
3       3   F 2003-09-01
4       4   M 2003-05-07

关于r - 在 R 中按日期选择子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17244077/

相关文章:

r - 在不知道行号的情况下删除特定行

r - data.table:在使用关键变量的单调变换时绕过 setkey

r - 在 for 循环 R 中包括 try() 或 trycatch()

r - 在 R 中按等距时间间隔聚合数据

r - Stargazer 中的 CI 指数

date - 有没有办法迭代特定的月份或星期

mysql - 使用 MySQL 选择具有设定日期+月份偏移量的行

r - 生成随机日期

javascript - 获取 Javascript 中其他位置的偏移量

laravel - Laravel 5-检查日期是否是今天