That is very nice. Maybe just one slight improvement so to express it in a non-destructive form:
replace(mat, t(apply(mat,1,duplicated)), NA) On Fri, Feb 13, 2009 at 12:58 PM, Stavros Macrakis <macra...@alum.mit.edu> wrote: > (typos corrected) > > Combining the various approaches on the list, here's a simple > one-liner that puts the NAs at the end: > > t(apply(mat,1,function(r) { dr<-duplicated(r); c( r[!dr], > rep(NA,sum(dr)) ) })) > > If you don't care where the NAs are, the following is a tad shorter > and perhaps clearer: > > mat[ t(apply(mat,1,duplicated)) ] <- NA # modifies mat > > -s > > On Fri, Feb 13, 2009 at 12:49 PM, Stavros Macrakis > <macra...@alum.mit.edu> wrote: >> Combining the various approaches on the list, here's a simple >> one-liner that puts the NAs at the end: >> >> t(apply(mat,1,function(r) { dr<-duplicated(r); c( r[!dr], >> rep(NA,sum(dr)) ) )) >> >> If you don't care where the NAs are, the following is a tad shorter >> and perhaps clearer: >> >> mat[ t(apply(mat,1,duplicated)) ] < -NA # modifies mat >> >> -s >> > > ______________________________________________ > 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.