Re: [R] Replacing value with "1"

2016-09-29 Thread Richard M. Heiberger
I got the matrix time down by another factor of 4 tmp <- matrix(c(0,0,1,0,0, NA,0,1,1,0, 0,1,0,0,NA, 1,0,1,0,1), ## last item in row has value 1 byrow=TRUE, 4, 5) ## Jeff matrix DF2 <- DF <- tmp DF2[ , -1 ] <- ifelse( !is.na( DF[ ,

Re: [R] Replacing value with "1"

2016-09-23 Thread Jeff Newmiller
Another approach using in-place replacement and thinking with matrix operations instead of vector operations: DF <- matrix( c( 0, 0, 1, 0, 0 , NA, 0, 1, 1, 0 , 0, 1, 0, 0, NA ) , byrow=TRUE , nrow=3 ) DF2 <- DF DF2[ , -1 ] <- ifelse(

Re: [R] Replacing value with "1"

2016-09-23 Thread Henrik Bengtsson
which(df == 1, arr.ind=TRUE) is useful here: > df <- matrix(c(0,NA,0,0,0,1,1,1,0,0,1,0,0,0,NA), nrow=3) > df [,1] [,2] [,3] [,4] [,5] [1,]00100 [2,] NA0110 [3,]0100 NA > ## Identify (row,col) indices for 1:s > idxs <- which(df == 1,

Re: [R] Replacing value with "1"

2016-09-22 Thread Jim Lemon
Hi Saba, Try this: df<-matrix(c(0,NA,0,0,0,1,1,1,0,0,1,0,0,0,NA),nrow=3) dimdf<-dim(df) df1<-df==1 df[cbind(rep(FALSE,dimdf[1]),df1[,-dimdf[2]])]<-1 Jim On Fri, Sep 23, 2016 at 12:27 PM, Saba Sehrish via R-help wrote: > Hi > > I have a matrix that contains 1565 rows and

Re: [R] Replacing value with "1"

2016-09-22 Thread Richard M. Heiberger
tmpf <- function(x) { n <- length(x) indices <- which(match(x,1) == 1) x[indices+1] <- 1 x[1:n] ## needed for the case when the last item in a row has value 1 } tmp <- matrix(c(0,0,1,0,0, NA,0,1,1,0, 0,1,0,0,NA, 1,0,1,0,1), ## last item in

[R] Replacing value with "1"

2016-09-22 Thread Saba Sehrish via R-help
Hi I have a matrix that contains 1565 rows and 132 columns. All the observations are either "0" or "1". Now I want to keep all the observations same but just one change, i.e. whenever there is "1", the very next value in the same row should become "1". Please see below as a sample: >df