0

我有 df1 和 df2 和 sql join :

df1 <- data.frame(fn1 = c('','NA','' ,'BF'),
              ln1 = c('DRFA', 'DEFF','DDFF', 'ANCD'))
 df2 <- data.frame(fn2 = c('','AA','BB', 'BF'),
              ln2 = c('DRFA', 'DEFF','FFFF', 'ANCD'))

library(sqldf)

nm = sqldf("
select a.*, b.*,
  (a.fn1 !=' '  and a.fn1 == b.fn2  ) as fnm,
  (a.ln1 == b.ln2) as lnm
  from df1 a, df2 b
  where (fnm + lnm)>= 1

       ")
 > nm
   fn1  ln1 fn2  ln2  fnm lnm
1       DRFA     DRFA   1   1
2  NA   DEFF  AA DEFF   0   1
3       DDFF     DRFA   1   0
4  BF   ANCD  BF ANCD   1   1

结果应该是1和3中的fnm应该为0。如何纠正呢?
谢谢

4

1 回答 1

1

您检查了 1 和 3 的a.fn1 != ' '结果,T因为值''不是' '. 尝试a.fn1 != ''

于 2014-01-24T20:01:05.600 回答