-->

如何处理从矩阵阵列索引值中的R [复制](How to Manipulate Array Index

2019-09-29 01:43发布

这个问题已经在这里有一个答案:

  • 使用行从矩阵索引值,列indicies 4个回答

给定一个矩阵

mat = matrix(round(runif(min=0,max=1,n=9*9)),ncol=9,nrow=9)

说你使用数组索引希望的1所有值

indx.1 = which(mat == 1, arr.ind=TRUE)

你如何操作你的矩阵内的索引值?

下面没有实现什么我后:

result.i.dont.want = mat
result.i.dont.want[indx.1[,1],indx.1[,2]] = NA

因为,据我所知,在indx.1的每个组合ř索引[1],和indx.1 [2]。

我知道,如果你使用arr.ind = FALSE这是很容易的,但是,我很好奇的arr.ind = TRUE。 例如:

result.i.do.want = mat
result.i.do.want[which(mat == 1)] = NA

谢谢您的帮助!

Answer 1:

你问关于矩阵索引。 indx.1返回由which是2列的矩阵; 你可以直接用它来解决矩阵元素。 这被称为矩阵索引。 因此,尝试mat[index.1]

还要考虑这个玩具例子:

A <- matrix(1:9, 3, 3)

A[1:2, 1:2]
#     [,1] [,2]
#[1,]    1    4
#[2,]    2    5

A[cbind(1:2, 1:2)]
# [1] 1 5


文章来源: How to Manipulate Array Indexed Values from Matrix in R [duplicate]