fusion of two matrices (numerical and logical)
Here is a way of doing it using the 'arr.ind' option in 'which'
A <- 1:20 B <- matrix(A,nrow=5,ncol=4) B
[,1] [,2] [,3] [,4] [1,] 1 6 11 16 [2,] 2 7 12 17 [3,] 3 8 13 18 [4,] 4 9 14 19 [5,] 5 10 15 20
# B is a numerical matrix C <- B<7 C[4,4] <- TRUE C
[,1] [,2] [,3] [,4] [1,] TRUE TRUE FALSE FALSE [2,] TRUE FALSE FALSE FALSE [3,] TRUE FALSE FALSE FALSE [4,] TRUE FALSE FALSE TRUE [5,] TRUE FALSE FALSE FALSE
# initialize a 'result' with zeros result <- array(0, dim = dim(B)) # get the indices of values to replace indx <- which(C, arr.ind = TRUE) result[indx] <- B[indx] result
[,1] [,2] [,3] [,4] [1,] 1 6 0 0 [2,] 2 0 0 0 [3,] 3 0 0 0 [4,] 4 0 0 19 [5,] 5 0 0 0
Jim Holtman *Data Munger Guru* *What is the problem that you are trying to solve?Tell me what you want to do, not how you want to do it.*
On Sat, Sep 5, 2020 at 11:51 AM Bert Gunter <bgunter.4567 at gmail.com> wrote:
A is not a matrix. I presume you meant B. If so:
B[!C] <- 0 B
[,1] [,2] [,3] [,4] [1,] 1 6 0 0 [2,] 2 0 0 0 [3,] 3 0 0 0 [4,] 4 0 0 19 [5,] 5 0 0 0 Cheers, Bert On Sat, Sep 5, 2020 at 11:18 AM Vivek Sutradhara <viveksutra at gmail.com> wrote:
Hi
I would like to get help in combining two matrices. Here is my example:
A <- 1:20
B <- matrix(A,nrow=5,ncol=4)
# B is a numerical matrix
C <- B<7
C[4,4] <- TRUE
# C is a logical matrix
# if I combine A and C, I get a vector
D1 <- A[C==TRUE]
D1
D2 <- A[C==FALSE]
D2
I want to get a matrix with the same dimensions as matrix A. At the
coordinates given by the vector D1, I want to retain the values in
matrix A. At the locations in D2, I want a zero value.
I want to know if I can do this without using any loops.
Thanks, Vivek
[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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 at r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.