R 比较两个数据帧的值并替换它们
我有两个具有相同行数和列数的数据帧,R 比较两个数据帧的值并替换它们,r,dataframe,R,Dataframe,我有两个具有相同行数和列数的数据帧,113x159具有此结构: df1: df2: 我想将值与值db1 e db2进行比较,如果db2的值是NA,而db1的值不是NA,则替换它(如果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
113x159
具有此结构:
df1:
df2:
我想将值与值db1 e db2进行比较,如果db2的值是NA,而db1的值不是NA,则替换它(如果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}
merge.na我们可以使用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
replace(df1,is.na(df2),na)
#x1x2x3x4
#AA公司
#在CC的b AG
#c AG GG GT AA
#d TT TC
我们可以使用替换
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
replace(df1,is.na(df2),na)
#x1x2x3x4
#AA公司
#在CC的b AG
#c AG GG GT AA
#d TT TC
您不能执行==NA
。使用is.na()。我看到它在df1上重叠,但幸运的是我有一个副本。太多了!你不能做==NA
。使用is.na()。我看到它在df1上重叠,但幸运的是我有一个副本。太多了!
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