Hi, I have the following, rather unorthodox problem:
I have a matrix that looks like this: m1 <- matrix(c('a','b','d',NA,'c','c'), 2,3, byrow=TRUE) [,1] [,2] [,3] [1,] "a" "b" "d" [2,] NA "c" "c" now I would like to transform this matrix into this matrix: [,1] [,2] [,3] [,4] [1,] "a" "b" "c" "d" [2,] NA NA NA NA so the rule is: if I find the same value (above: 'c') in neighbored cells (here: row wise) put this value in row 1 in a new column between column of neighbor a and column of neighbor b. too make it even more complicated: the definition of neighbored cells is not exclusively row wise. So for example I could encounter this kind of matrix: m2 <- matrix(c('a','b','d',NA,NA,'c',NA, 'c', NA), 3,3, byrow=TRUE) [,1] [,2] [,3] [1,] "a" "b" "d" [2,] NA NA "c" [3,] NA "c" NA which should also be transformed into: [,1] [,2] [,3] [,4] [1,] "a" "b" "c" "d" [2,] NA NA NA NA (or m3 <- matrix(c('a','b','d',NA,'c',NA,NA, NA, 'c'), 3,3, byrow=TRUE) ). Can perhaps someone give me some hints how to solve this efficiently? I think I could solve that with some loops … but I also need to make sure that it is efficient / not taking too much time. thanks! ______________________________________________ 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.