比较两个data.frames并根据一个data.frame中的NA值删除行

时间:2015-12-30 20:54:21

标签: r

我有两个数据框。一个被认为是参考并且具有每个值,另一个可能是或可能不是缺失值。我想比较两个数据帧,然后删除参考数据帧中另一个具有NA的值。但是,可以将具有缺失值的数据框的每一行都视为单个比较,因此您要为每一行开发唯一的引用。例如,参考数据帧(1):

  var1   var2   var3
1   a      b      c
2   q      w      e
3   z      x      n

另一个数据框(2):

   var1    var2    var3
1    p       o       i
2    u       y       t
3    NA      e       w
4    l       k       NA   

对于数据帧2的第1行和第2行,我需要一个完整的引用,因为没有缺失值:

  var1   var2   var3
1   a      b      c
2   q      w      e
3   z      x      n

对于数据帧2的第3行,我需要:

    var2   var3
1    b      c
2    w      e
3    x      n

对于数据帧2的第4行,我需要:

  var1   var2   
1   a      b      
2   q      w      
3   z      x      

1 个答案:

答案 0 :(得分:2)

尝试:

if (Session["AccountID"] != null)
{...do something }
else{Response.Write("<div id="imalogin"></div>)}

根据作者的评论要求,如果他还想:

  

&#34;如果NA处于奇数索引,则删除+1索引;如果NA处于偶数索引,则删除-1索引&#34;

> ref<-data.frame(var1=c('a','q','z'),var2=c('b','w','x'),var3=c('c','e','n'))
> new<-data.frame(var1=c('p','u',NA,'l'),var2=c('o','y','e','k'),var3=c('i','t','w',NA))
> apply(new,1,function(x) ref[,which(!is.na(x))] )
[[1]]
  var1 var2 var3
1    a    b    c
2    q    w    e
3    z    x    n

[[2]]
  var1 var2 var3
1    a    b    c
2    q    w    e
3    z    x    n

[[3]]
  var2 var3
1    b    c
2    w    e
3    x    n

[[4]]
  var1 var2
1    a    b
2    q    w
3    z    x