[R] merge without NA last

2013-05-31 Thread nevil amos
I am trying to create a merge where the first value contains NA values.  I
wish to retain these in order.  however when I use all.x=T and sort=F they
are retained but na values are placed last:

 X-data.frame(k1=c(A,NA,C,B))
 print (X)
k1
1A
2 NA
3C
4B
 Y-data.frame(k2=c(1,2,3),k3=c(A,B,C))
 Z-merge(X,Y, by.x=1,by.y=2,all.x=T,sort=F)
 print (Z)
k1 k2
1A  1
2C  3
3B  2
4 NA NA


The result I need is
k1  k2
1A  1
2 NA NA
3C 3
4B 2

how do I prevent NA c=values being sorted to last - I need to retain values
in position.

thanks

Nevil Amos

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] merge without NA last

2013-05-31 Thread Milan Bouchet-Valat
Le vendredi 31 mai 2013 à 18:07 +1000, nevil amos a écrit :
 I am trying to create a merge where the first value contains NA values.  I
 wish to retain these in order.  however when I use all.x=T and sort=F they
 are retained but na values are placed last:
 
  X-data.frame(k1=c(A,NA,C,B))
  print (X)
 k1
 1A
 2 NA
 3C
 4B
  Y-data.frame(k2=c(1,2,3),k3=c(A,B,C))
  Z-merge(X,Y, by.x=1,by.y=2,all.x=T,sort=F)
  print (Z)
 k1 k2
 1A  1
 2C  3
 3B  2
 4 NA NA
 
 
 The result I need is
 k1  k2
 1A  1
 2 NA NA
 3C 3
 4B 2
 
 how do I prevent NA c=values being sorted to last - I need to retain values
 in position.
merge(..., sort=FALSE) does not guarantee the order will be preserved,
even when NAs are not present. If you want to preserve the order, you
can add a sequence number to the original data frame:
X - data.frame(k1=c(A,NA,C,B), id=seq.int(4))
and sort manually on that column after the merge.


Regards

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] merge without NA last

2013-05-31 Thread arun
library(plyr)
 colnames(Y)[2]- colnames(X)
 join(X,Y,type=left,by=k1)
#    k1 k2
#1    A  1
#2 NA NA
#3    C  3
#4    B  2
A.K.



- Original Message -
From: nevil amos nevil.a...@gmail.com
To: r-help R-help@r-project.org
Cc: 
Sent: Friday, May 31, 2013 4:07 AM
Subject: [R] merge without NA last

I am trying to create a merge where the first value contains NA values.  I
wish to retain these in order.  however when I use all.x=T and sort=F they
are retained but na values are placed last:

 X-data.frame(k1=c(A,NA,C,B))
 print (X)
    k1
1    A
2 NA
3    C
4    B
 Y-data.frame(k2=c(1,2,3),k3=c(A,B,C))
 Z-merge(X,Y, by.x=1,by.y=2,all.x=T,sort=F)
 print (Z)
    k1 k2
1    A  1
2    C  3
3    B  2
4 NA NA


The result I need is
    k1  k2
1    A  1
2 NA NA
3    C 3
4    B 2

how do I prevent NA c=values being sorted to last - I need to retain values
in position.

thanks

Nevil Amos

    [[alternative HTML version deleted]]

__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


__
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.