[R] fusion of two matrices (numerical and logical)
jim holtman
jho|tm@n @end|ng |rom gm@||@com
Fri Sep 18 19:52:42 CEST 2020
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 using 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 using 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 using 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 using 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]]
More information about the R-help
mailing list