R 求矩阵中非零元素的指数

R 求矩阵中非零元素的指数,r,R,我想得到矩阵中非零元素的指数 X <- matrix(c(1,0,3,4,0,5), byrow=TRUE, nrow=2); 有人能告诉我怎么做吗?您的示例代码中有一个错误-未定义True,请使用True X <-matrix(c(1,0,3,4,0,5), byrow = TRUE, nrow = 2) 要获取行/列索引,请执行以下操作: row(X)[which(!X == 0)] col(X)[which(!X == 0)] 要使用这些索引返回矩阵,请执行以下操作:

我想得到矩阵中非零元素的指数

X <- matrix(c(1,0,3,4,0,5), byrow=TRUE, nrow=2);

有人能告诉我怎么做吗?

您的示例代码中有一个错误-未定义True,请使用True

X <-matrix(c(1,0,3,4,0,5), byrow = TRUE, nrow = 2)
要获取行/列索引,请执行以下操作:

 row(X)[which(!X == 0)]
 col(X)[which(!X == 0)]
要使用这些索引返回矩阵,请执行以下操作:

   X[cbind(row(X)[which(!X == 0)], col(X)[which(!X == 0)])]
   #[1] 1 4 3 5

如果
arr.ind==TRUE
X
是一个数组,则结果是一个矩阵,其每行都是
X

T元素的索引,在这里表示TRUE。对于那些刚接触R的人,您还可以编写
(X!=0,arr.ind=TRUE)
并获得相同的效果。
 row(X)[which(!X == 0)]
 col(X)[which(!X == 0)]
   X[cbind(row(X)[which(!X == 0)], col(X)[which(!X == 0)])]
   #[1] 1 4 3 5
which(X!=0,arr.ind = T)
     row col
[1,]   1   1
[2,]   2   1
[3,]   1   3
[4,]   2   3