我有这个矩阵:
[,1] [,2] [,3] [,4]
[1,] 0e+00 0e+00 0e+00 0e+00
[2,] 1e-05 2e-05 3e-05 4e-05
[3,] 0e+00 0e+00 0e+00 0e+00
[4,] 0e+00 0e+00 0e+00 0e+00
我想从底部删除零行,直到有一个值的行,它应该在最后看起来像这样:
[,1] [,2] [,3] [,4]
[1,] 0e+00 0e+00 0e+00 0e+00
[2,] 1e-05 2e-05 3e-05 4e-05
以下是我使用的代码:
mat=matrix(c(0e+00,1e-05,0e+00,0e+00,0e+00,2e-05,0e+00,0e+00,0e+00,3e-05,0e+00,0e+00,0e+00,4e-05,0e+00,0e+00), nrow=4)
mat=mat[which(rowSums(mat) > 0),]
我认为mat=mat[which(rowSums(mat) > 0),]
会在这里删除底部的零。但它只删除所有零并创建一个包含非零值的列表:[1] 1e-05 2e-05 3e-05 4e-05
在其他只有整数的测试矩阵中,它正常工作。
我应该改变什么才能得到上面解释的结果?顺便说一句。我也尝试了mat=mat[which(rowSums(mat) > 0e+00),]
,但我没有得到正确的结果。