Try this. After the apply from your post we use lapply to make each series into a zoo series so that we can later use zoo's multiway merge. Finally we actually merge them and in the next statement just makes nice column names:
> library(zoo) > all3 <- do.call(merge, lapply(apply(peaks, 1, unique), zoo)) > colnames(all3) <- make.names(1:ncol(all3)) > all3 X1 X2 X3 1 2 10 1 2 7 6 9 3 9 8 7 4 NA NA 2 5 NA NA 0 On Thu, Feb 12, 2009 at 2:31 PM, Jason Shaw <jason.shaw...@gmail.com> wrote: > Hi, > > I'm trying to take a matrix such as > > [,1] [,2] [,3] [,4] [,5] > [1,] 2 7 2 7 9 > [2,] 10 10 6 8 6 > [3,] 1 9 7 2 0 > > and generate a new matrix which contains only the unique values in each row: > > [,1] [,2] [,3] [,4] [,5] > [1,] 2 7 9 NA NA > [2,] 10 6 8 NA NA > [3,] 1 9 7 2 0 > > My problem is that I can use apply(matrix,MARGIN=1,FUN=unique) to find > the unique values, but this leaves me with a list with arrays of > different length: > >> x <- apply(peaks,MARGIN=1,FUN=unique) > [[1]] > [1] 2 7 9 > > [[2]] > [1] 10 6 8 > > [[3]] > [1] 1 9 7 2 0 > > and using do.call("rbind",x) recycles the values of the shorter > vectors instead of filling them with NA: > >> do.call("rbind",x) > [,1] [,2] [,3] [,4] [,5] > [1,] 2 7 9 2 7 > [2,] 10 6 8 10 6 > [3,] 1 9 7 2 0 > > So, I'd like to either take every element of the list and extend it > with NAs to the length of the longest element, or rbind every element > where missing places are filled with NAs instead of recycled values. > Is this possible? Of course, the solution is trivial using a loop, > but I'm trying to avoid this. > > Thanks for any suggestions. > > ______________________________________________ > 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.