R 基于列位置更改矩阵中的值
我试图取m矩阵中“1”的位置,并使用这些位置将k矩阵中的值更改为NA。但是我在尝试了很多之后,还是很难得到它R 基于列位置更改矩阵中的值,r,matrix,R,Matrix,我试图取m矩阵中“1”的位置,并使用这些位置将k矩阵中的值更改为NA。但是我在尝试了很多之后,还是很难得到它 m <- matrix(c(0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1), nrow = 4, byrow = TRUE) m [,1] [,2] [,3] [,4] [1,] 0 0 0 1 [2,] 0 1 0 1 [3,] 1 0
m <- matrix(c(0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1),
nrow = 4, byrow = TRUE)
m
[,1] [,2] [,3] [,4]
[1,] 0 0 0 1
[2,] 0 1 0 1
[3,] 1 0 0 0
[4,] 0 0 1 1
k <- matrix(c(12, 32, 12, 13, 23, 31, 23, 31, 23, 32, 67,63,61, 22,99, 34),
nrow = 4, byrow = TRUE)
k
[,1] [,2] [,3] [,4]
[1,] 12 32 12 13
[2,] 23 31 23 31
[3,] 23 32 67 63
[4,] 61 22 99 34
我们可以使用
NA^(m)*k
# [,1] [,2] [,3] [,4]
#[1,] 12 32 12 NA
#[2,] 23 NA 23 NA
#[3,] NA 32 67 63
#[4,] 61 22 NA NA
或者另一种选择是
is.na(k) <- m==1
您可以简单地执行以下操作:
k[m==1] <- NA
k[m==1]
is.na(k) <- m==1
replace(k, m==1, NA)
k[m==1] <- NA