R:用日期列变量中的固定日期替换 NA(如果条件成立)

Pau*_*ola 2 if-statement r date dplyr data.table

如果给定条件成立,我想用固定日期替换给定列(日期格式)中的 NA 值。

在下面的示例中,我想用if 条件成立替换列NA中的值。我正在寻找最简单的方法,无论是在或中。dt"2012-07-01"a==4dplyrdata.table

> df1 <- data.table(a = c(1, 2, 3, 4),
+                  dt = as.Date(c("2012-06-01", "2012-07-01", NA, NA)))
> df1
   a         dt
1: 1 2012-06-01
2: 2 2012-07-01
3: 3       <NA>
4: 4       <NA>
Run Code Online (Sandbox Code Playgroud)

sin*_*dur 5

data.table

df1[a == 4 & is.na(dt), dt := as.Date("2012-07-01")]
       a         dt
   <num>     <Date>
1:     1 2012-06-01
2:     2 2012-07-01
3:     3       <NA>
4:     4 2012-07-01
Run Code Online (Sandbox Code Playgroud)

为了完整性,在 Base R 中:

df1[df1$a == 4 & is.na(df1$dt), "dt"] <- "2012-07-01"
Run Code Online (Sandbox Code Playgroud)