我正在使用两个向量和一个数据框:
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”的行?
答案 0 :(得分:1)
我们可以使用'z'中的索引来对lhs
<
上的'var2'进行子集化
df$var2[z] <- y