我有两个具有相同行数和列数的数据框,113x159
具有以下结构:
DF1:
1 2 3 4
a AT AA AG CT
b NA AG AT CC
c AG GG GT AA
d NA NA TT TC
DF2:
1 2 3 4
a NA 23 12 NA
b NA 23 44 12
c 11 14 27 55
d NA NA 12 34
我想将值与值db1 e db2进行比较,如果db 2的值为NA且db1的值不是,则替换它(如果db1值为NA且db2中没有,则替换它)。 最后,我的df必须是这样的:
1 2 3 4
a NA AA AG NA
b NA AG AT CC
c AG GG GT AA
d NA NA TT CC
我已经写了这个if循环,但它不起作用:
merge.na<-function(x){
for (i in df2) AND (k in df1){
if (i==NA) AND (k!=NA)
k==NA}
有什么想法吗?
答案 0 :(得分:0)
我们可以使用replace
replace(df1, is.na(df2), NA)
# X1 X2 X3 X4
#a <NA> AA AG <NA>
#b <NA> AG AT CC
#c AG GG GT AA
#d <NA> <NA> TT TC