复制矩阵,但将非 NA 值替换为 TRUE,将 NA 替换为 FALSE

Copy matrix, but substituting non NA values to TRUE, and NAs to FALSE

我如何从

test <- matrix(c("eb2","ebrees",NA,NA,
                 "ebrees","es2",NA,NA,
                  NA, NA, NA, NA,
                  NA, NA, NA, NA), ncol = 4, byrow = T)

     [,1]     [,2]     [,3] [,4]
[1,] "eb2"    "ebrees" NA   NA
[2,] "ebrees" "es2"    NA   NA
[3,] NA       NA       NA   NA
[4,] NA       NA       NA   NA

至:

     [,1] [,2] [,3] [,4]
[1,]   T    T    F   F
[2,]   T    T    F   F
[3,]   F    F    F   F
[4,]   F    F    F   F

这是我得到的结果:

哪个(!is.na(测试),arr.ind = TRUE)

     row col
[1,]   1   1
[2,]   2   1
[3,]   1   2
[4,]   2   2

这给了我所需的数字版本。

第二次尝试将矩阵视为 df,但返回给我的是 char 而不是逻辑,似乎我很接近但无法弄清楚如何获取逻辑值。

test[!is.na(test)] = T
test[is.na(test)] = F
test1 <- (!is.na(test))

输出

> test1
      [,1]  [,2]  [,3]  [,4]
[1,]  TRUE  TRUE FALSE FALSE
[2,]  TRUE  TRUE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE