合并 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
也许这很容易,但我想不出办法。我真正的问题是更大的数据集,所以我正在寻找比我目前正在做的更优雅的东西。
我有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