如何在R中将日期超出特定时间段设置为NA

时间:2017-03-07 14:48:25

标签: r date

我有一个大型数据框(x),其中一个列(Visit_Date)包含许多日期。

不幸的是,此列中的某些数据是指DoB而不是Visit_Date。例如,此列中的日期应仅在2015年1月1日至2017年3月1日期间,但我的日期为16/09/1964。

我的问题是,如何将2015年1月1日之前的所有日期设置为NA?

1 个答案:

答案 0 :(得分:0)

这是我的简单解决方案。

library(lubridate)

x <- data.frame(
  value = 1:5,
  Visit_Date = c("01/01/2015","21/02/2015",
                 "01/03/2015","16/09/1964",
                 "01/09/2015")
 )

x$Visit_Date <- dmy(x$Visit_Date)

index <- x$Visit_Date < dmy("01/01/2015")
x[index,"Visit_Date"] <- NA
x

#   value Visit_Date
# 1     1 2015-01-01
# 2     2 2015-02-21
# 3     3 2015-03-01
# 4     4       <NA>
# 5     5 2015-09-01