[R] putting NAs at the end

Angel angel_lul at hotmail.com
Thu Aug 14 09:47:49 CEST 2003


Yes, I have. I am sorry if I am missing some very basic stuff, but both
order and sort will not only put the NAs at the end (with na.last=TRUE)  BUT
also sort in ascending or descending order the rest of the elements and that
is not what I want. And with order I would only get the z NAs at the end and
not also the associated x and y coordinates.
Thanks for any further help.
Angel
----- Original Message -----
From: "Spencer Graves" <spencer.graves at PDF.COM>
To: "Angel" <angel_lul at hotmail.com>
Cc: <r-help at stat.math.ethz.ch>
Sent: Wednesday, August 13, 2003 3:41 PM
Subject: Re: [R] putting NAs at the end


> Have you considered "?order"?
>
> Spencer Graves
>
> Angel wrote:
> > I have a matrix for which each row has 12 elements that represent the
xyz coordinates of 4 points.
> > So each row of M is (x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4). Some points
have NA as z values.
> > I want another matrix to be the same as M but with the coordinates of
those points with z=NA placed last.
> > For ezample if z1=NA then the new matrix row should be
(x2,y2,z2,x3,y3,z3,x4,y4,z4,x1,y1,z1)
> > I've tried writing a function that does the job for each row and then
apply to the matrix
> >
> > Put.NaN.last<-function(p) {
> > Index<-c(which(!is.na(p[c(3,6,9,12)]))*3,which(is.na(p[c(3,6,9,12)]))*3)
> > p<-c(p[Index[1]-2],p[Index[1]-1],p[Index[1]],
> > p[Index[2]-2],p[Index[2]-1],p[Index[2]],
> > p[Index[3]-2],p[Index[3]-1],p[Index[3]],
> > p[Index[4]-2],p[Index[4]-1],p[Index[4]])
> > return(p)
> > }
> > A<-matrix(1:36,ncol=12)
> > A[c(7,9,17,36)]<-NA
> > A<-t(apply(A,1,Put.NaN.last))
> >
> > but it is awfully slow.
> > Any suggestions on how to do this faster?
> > Thanks
> > Angel
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://www.stat.math.ethz.ch/mailman/listinfo/r-help
>
>
>




More information about the R-help mailing list