R过滤矩阵中的rownames

Lis*_*ann 1 row r dataframe

我有一个像z这样的数据框:

z <- matrix(c(1,0,0,1,1,0,0,
          1,0,0,0,1,0,0,
          0,0,0,0,0,0,0,
          0,0,1,0,0,0,0),
        nrow=7,
        dimnames=list(LETTERS[1:7],NULL))

   [,1] [,2] [,3] [,4]
A    1    1    0    0
B    0    0    0    0
C    0    0    0    1
D    1    0    0    0
E    1    1    0    0
F    0    0    0    0
G    0    0    0    0
Run Code Online (Sandbox Code Playgroud)

现在我想删除所有值为零的所有行.结果将是:

   [,1] [,2] [,3] [,4]
A    1    1    0    0
C    0    0    0    1
D    1    0    0    0
E    1    1    0    0
Run Code Online (Sandbox Code Playgroud)

谢谢!

Vin*_*ent 6

使用all()apply():

z <- matrix(c(1,0,0,1,1,0,0,
          1,0,0,0,1,0,0,
          0,0,0,0,0,0,0,
          0,0,1,0,0,0,0),
        nrow=7,
        dimnames=list(LETTERS[1:7],NULL))

all.0 <- apply(z, 1, function(i) all(i==0))
z[!all.0,]
Run Code Online (Sandbox Code Playgroud)

结果:

  [,1] [,2] [,3] [,4]
A    1    1    0    0
C    0    0    0    1
D    1    0    0    0
E    1    1    0    0
Run Code Online (Sandbox Code Playgroud)