[R] re placing values in a matrix

Gabor Csardi csardi at rmki.kfki.hu
Fri Feb 1 12:49:52 CET 2008


Actually, you don't need apply. If there are no NA's then it is 
very easy:

m[] <- y[ col(m) ]

If you want to keep the NA's then it is a bit more tricky:

m[] <- 0*m + y[ col(m) ]


G.

On Thu, Jan 31, 2008 at 07:03:51PM -0800, dxc13 wrote:
> 
> useR's,
> 
> Consider:
> y <- c(20, 25, 30)
> > m <- matrix(c(0.0,1,NA,0.5,1.25,0.75, 0.5, NA,
> > NA),byrow=TRUE,nrow=3,ncol=3)
> > m
>      [,1] [,2] [,3]
> [1,]  0.0 1.00   NA
> [2,]  0.5 1.25 0.75
> [3,]  0.5   NA   NA
> 
> For each numeric value, I want to replace them with their corresponding
> y-value.  The result should look like (here, each row represents a variable
> rather than the columns):
>       [,1] [,2] [,3]
> [1,]  20   25   NA
> [2,]  20   25   30
> [3,]  20  NA   NA
> 
> Does anyone know how I can do this using apply()?  Or is there an easier
> way?  Thanks in advance.
> 
> Derek
> -- 
> View this message in context: http://www.nabble.com/replacing-values-in-a-matrix-tp15219764p15219764.html
> Sent from the R help mailing list archive at Nabble.com.
> 
> ______________________________________________
> R-help at 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.

-- 
Csardi Gabor <csardi at rmki.kfki.hu>    UNIL DGM



More information about the R-help mailing list