R 仅使用列B中的值覆盖列A中的NAs

R 仅使用列B中的值覆盖列A中的NAs,r,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"), tzo

我在数据框中有列
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缺少日期。现在,我想用
B
中的相关值(相同索引)替换
A
中缺少的日期。我知道这应该适用于索引,但我找不到解决方案。谢谢你的帮助

使用基本R:

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

A[is.na(A)]我们可以使用
coalesce

library(dplyr) 
coalesce(A, B)
library(lubridate)
coalesce(A, `tz<-`(B, ""))
正如@RuiBarradas在评论中提到的,我们可以在执行
合并之前将
tz
设置为NULL

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

将(A,`tz与
tidyverse
合并:

library(tidyverse)

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

请注意,
A
没有指定时区,因此结果可能会令人惊讶。另请参阅