[R] Extending each element in a list, or rbind()-ing arrays of different length without recycling
Rolf Turner
r.turner at auckland.ac.nz
Thu Feb 12 21:59:40 CET 2009
On 13/02/2009, at 9:06 AM, markleeds at verizon.net wrote:
> Hi Jason: below seems to work. you have to take the transpose because
> the apply
> returns the rows transposed. i'm also not sure how to make the NAs be
> the last
> ones but maybe someone can show us how to do that.
Pretty easy:
na.at.end <- function(x){
i <- is.na(x)
c(x[!i],rep(NA,sum(i)))
}
>
> mat <- matrix(c(2,7,2,7,9,10,10,6,8,6,1,9,7,2,0),byrow=TRUE,nrow=3)
> print(mat)
>
> t(apply(mat,1, function(.row) {
> .row[duplicated(.row)] <- NA
> .row
> }))
Then just change to:
t(apply(mat,1, function(.row) {
.row[duplicated(.row)] <- NA
na.at.end(.row)
}))
cheers,
Rolf
######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}
More information about the R-help
mailing list