Dear Jason,
Try this:

x<-matrix(scan(),byrow=TRUE,ncol=5)
2    7    2    7    9
10   10    6    8    6
1    9    7    2    0

res<-apply(x,1,unique)  # Unique values
maxlength<-max(do.call(c,lapply(res,length)))   # Maximum length of unique
values

# Your matrix
do.call(rbind,lapply(res,function(x){
             x[maxlength]<-NA
               x
             }
       )
)


HTH,

Jorge


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.
>

        [[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.

Reply via email to