[R] Get a copy of a matrix only for TRUE entries of a matching size boolean matrix?

Marc Girondot m@rc_grt @end|ng |rom y@hoo@|r
Fri May 3 16:28:26 CEST 2024


Is it what you want ?
mat_letters <- matrix(data=c('A', 'B', 'C', 'D'), ncol=2, byrow=TRUE)
mat_bools <- matrix(data=c(FALSE, TRUE, TRUE, FALSE), ncol=2, byrow=TRUE)

ifelse(mat_bools, mat_letters, "")
ifelse(mat_bools, mat_letters, NA)

 > ifelse(mat_bools, mat_letters, "")
      [,1] [,2]
[1,] ""   "B"
[2,] "C"  ""
 > ifelse(mat_bools, mat_letters, NA)
      [,1] [,2]
[1,] NA   "B"
[2,] "C"  NA

Marc



Le 03/05/2024 à 14:47, DynV Montrealer a écrit :
> Is there a way to get a copy of a matrix only for TRUE entries of a
> matching size boolean matrix? For*example*:
>> mat_letters <- matrix(data=c('A', 'B', 'C', 'D'), ncol=2, byrow=TRUE)
>> mat_letters
>       [,1] [,2]
> [1,] "A"  "B"
> [2,] "C"  "D"
>> mat_bools <- matrix(data=c(FALSE, TRUE, TRUE, FALSE), ncol=2, byrow=TRUE)
>> mat_bools
>        [,1]  [,2]
> [1,] FALSE  TRUE
> [2,]  TRUE FALSE
> *Reminder:* The following is only an example ; the solution might look very
> different.
> some_command(mat_letters, mat_bools, false=empty)
>       [,1] [,2]
> [1,] ""  "B"
> [2,] "C"  ""
> some_command(mat_letters, mat_bools, false=na)
>       [,1] [,2]
> [1,] NA  "B"
> [2,] "C"  NA


	[[alternative HTML version deleted]]



More information about the R-help mailing list