我想在矩阵中得到非零元素的索引.例如
X <- matrix(c(1,0,3,4,0,5), byrow=TRUE, nrow=2);
Run Code Online (Sandbox Code Playgroud)
应该给我这样的东西
row col
1 1
1 3
2 1
2 3
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我该怎么做?
Geo*_*tas 46
which(X!=0,arr.ind = T)
row col
[1,] 1 1
[2,] 2 1
[3,] 1 3
[4,] 2 3
Run Code Online (Sandbox Code Playgroud)
如果arr.ind == TRUE和X是一个数组,结果是一个矩阵,其行每个都是元素的索引X
您的示例代码中存在错误 - 未定义True,请使用TRUE.
X <-matrix(c(1,0,3,4,0,5), byrow = TRUE, nrow = 2)
Run Code Online (Sandbox Code Playgroud)
应该这样做:
which(!X == 0)
X[ which(!X == 0)]
#[1] 1 4 3 5
Run Code Online (Sandbox Code Playgroud)
获取行/ col索引:
row(X)[which(!X == 0)]
col(X)[which(!X == 0)]
Run Code Online (Sandbox Code Playgroud)
使用那些索引回矩阵:
X[cbind(row(X)[which(!X == 0)], col(X)[which(!X == 0)])]
#[1] 1 4 3 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42757 次 |
| 最近记录: |