将NA添加到替换的特定部分

时间:2016-09-22 02:55:22

标签: r

我正在使用两个向量和一个数据框:

x <- c("A", "B", "D")
y <- c(1, 3, 5)

df:
#  var1  var2
#1 ddAd  NA
#2 dBdd  NA
#3 ddCd  NA
#4 Dddd  NA

我想要的结果是:

df:
#  var1  var2
#1 ddAd  1
#2 dBdd  3
#3 ddCd  NA
#4 Dddd  5

有人建议采用以下方法:

z <- grep(paste(x, collapse="|"), df$var1, value = FALSE)
df$var2 <- y[z]

我对上述方法遇到的问题是我的替换线路比数据帧少。是否有一种简单的方法可以将NA添加到替换中,以便它们对应于没有“A”,“B”或“D”的行?

1 个答案:

答案 0 :(得分:1)

我们可以使用'z'中的索引来对lhs <上的'var2'进行子集化

df$var2[z] <- y