我有两列要合并的列(a和b),这样“ a”仅在有NA的情况下才覆盖“ b”中的值。
基本上,我希望保留“ b”中的PAV和SAV。
我尝试了以下代码:
MergingTABLE$c <- ifelse(is.na(MergingTABLE$b), MergingTABLE$a, MergingTABLE$b)
但是它给了我数字而不是将值复制过来。
MergingTABLE <- data.frame(a = c("NOO","NOO","POR","NOO","SAV","WAT","SAV","PAV","COM","WAT"),
b = c(NA,NA,"PAV",NA,"SAV",NA,NA,NA,NA,NA))
我希望输出列是两者的组合,但是当a和b都具有非NA值时,使用b中的值。
答案 0 :(得分:0)
使用dplyr
:
library(dplyr)
MergingTABLE %>%
mutate(c = if_else(is.na(b), a, b))
答案 1 :(得分:0)
使用data.table:
library('data.table')
setDT(MergingTABLE)
MergingTABLE[!is.na(b), c := b]
MergingTABLE[is.na(b), c := a]