我想根据NA
df中的id
列值迅速替换first
df中的x0
df向量second
中的x0
值合并和删除列。换句话说,first <- data.frame(x0=1:5,
x3=90:94,
id=c("a1","a2","a3",NA,NA))`
是公用记录标识符。下面是一个简单的示例:
x0 x3 id
1 1 90 a1
2 2 91 a2
3 3 92 a3
4 4 93 <NA>
5 5 94 <NA>`
second <- data.frame(x0=4:8,
x2=seq(104,108,1),
id=c("a4","a5","a6","a7","a8"))`
x0 x2 id
1 4 104 a4
2 5 105 a5
3 6 106 a6
4 7 107 a7
5 8 108 a8`
x0 x3 id
1 1 90 a1
2 2 91 a2
3 3 92 a3
4 4 93 a4
5 5 94 a5`
预期结果将是:
pm2 restart 1
答案 0 :(得分:1)
您正在寻找一个 update-join 或一个 gap-fill-join ,可以这样做:
first$id <- as.character(first$id)
second$id <- as.character(second$id)
idx <- match(first$x0, second$x0) #Update join
idxn <- which(!is.na(idx))
first$id[idxn] <- second$id[idx[idxn]]
first
# x0 x3 id
#1 1 90 a1
#2 2 91 a2
#3 3 92 a3
#4 4 93 a4
#5 5 94 a5