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
没有指定时区,因此结果可能会令人惊讶。另请参阅