我有矩阵
m <- matrix(c(1, 0, 3, 4, 0, 6), 3)
Run Code Online (Sandbox Code Playgroud)
我需要过滤出两个列的值都为0的行,这些行实际上返回了矩阵:
m <- matrix(c(1, 3, 4, 6), 3)
Run Code Online (Sandbox Code Playgroud)
我试过了
m[m[, 1] > 0 & m[, 2] > 0]
Run Code Online (Sandbox Code Playgroud)
但是这会返回一个向量而不是一个只有0的行的矩阵.这应该很简单,但我被卡住了.
谢谢, - 伊丽莎白
您在自己的解决方案中只缺少",".使用
m[m[,1]>0 & m[,2]>0,]
Run Code Online (Sandbox Code Playgroud)
它会起作用:
> m[m[,1]>0 & m[,2]>0,]
[,1] [,2]
[1,] 1 4
[2,] 3 6
Run Code Online (Sandbox Code Playgroud)
如果你有很多列
m
[,1] [,2]
[1,] 1 4
[2,] 0 0
[3,] 3 6
m^2
[,1] [,2]
[1,] 1 16
[2,] 0 0
[3,] 9 36
rowSums(m^2)
[1] 17 0 45
m[rowSums(m^2)>0,]
[,1] [,2]
[1,] 1 4
[2,] 3 6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |