合并 2 个数据帧,用其他 R 替换一帧的值

combining 2 dataframes, replacing values of one frame with other R

也许这很容易,但我想不出办法。我真正的问题是更大的数据集,所以我正在寻找比我目前正在做的更优雅的东西。

我有2个数据框。一个有数据(d1):

d1<-data.frame(id=(letters[1:10]), a=(rep(c(0,1), times=5)), b=(rep(c(0,1), times=5)))

另一个是第一个数据集中的 0 应该是 NA 的时间索引

d2<-data.frame(id=(letters[1:10]), a=c(NA,1, 0,1, NA,1, 0, 1, NA, 1), b=c(NA,1, 0,1, NA,1, 0, 1, NA, 1))

我正在寻找一种将 NA 放入 d1 的方法,适用于 d2 中有 NA 的任何地方。

我可以按列单独完成,但想知道是否有更简单的方法!

nas<-which(is.na(d2$a))
    d1$a[nas]<-NA 

nas<-which(is.na(d2$b))
    d1$b[nas]<-NA 

尝试这样的事情

 d1[is.na(d2)] <- NA