仅用 B 列中的值覆盖 A 列中的 NA

  • 本文关键字:NA 覆盖 仅用 r
  • 更新时间 :
  • 英文 :


我在数据帧中有列A和列B

A = structure(c(NA, NA, NA, 1559401558, 1559413729, 1559417798), class = c("POSIXct", 
"POSIXt"), tzone = "")
B = structure(c(1559379600, 1559388600, 1559397600, 1559406600, 1559415600, 
1559424600), class = c("POSIXct", "POSIXt"), tzone = "UTC")
> 

如您所见,只有 A 列缺少日期。我现在想要,只有A中缺少的日期被替换为B中的相关值(相同的索引(。我知道这应该适用于索引,但我找不到解决方案。感谢您的帮助!

使用基本 R:

A[is.na(A)] <- B[is.na(A)]

我们可以使用coalesce

library(dplyr) 
coalesce(A, B)

正如@RuiBarradas注释中提到的,我们可以在执行coalesce之前将tz设置为 NULL。

library(lubridate)
coalesce(A, `tz<-`(B, ""))

tidyverse

library(tidyverse)
tibble(A = A, B = B) %>%
mutate(A = ifelse(is.na(A), B, A))

最新更新