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