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

时间:2019-12-23 16:54:25

标签: 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中只有缺少的Date替换为B中的相关值(相同索引)。我知道这应该适用于索引,但是我找不到解决方案。感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

使用基本R:

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

答案 1 :(得分:3)

我们可以使用coalesce

library(dplyr) 
coalesce(A, B)

正如评论中提到的@RuiBarradas一样,我们可以在执行tz之前将coalesce设置为NULL

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

答案 2 :(得分:1)

使用tidyverse

library(tidyverse)

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