R过滤矩阵中的行名
我有一个像 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
现在我想删除所有值都为零的所有行。结果将是:
[,1] [,2] [,3] [,4]
A 1 1 0 0
C 0 0 0 1
D 1 0 0 0
E 1 1 0 0
谢谢!
I have a dataframe like 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
Now I want to remove all the rows where all the values are zero. Than the result will be:
[,1] [,2] [,3] [,4]
A 1 1 0 0
C 0 0 0 1
D 1 0 0 0
E 1 1 0 0
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
all()
和apply()
:结果:
Use
all()
andapply()
:Result:
另外,如果所有元素都是正数,您可以使用 rowSums 来完成:
这有点棘手,@Vincent 的方法更通用。
And also if all element is positive numeric, you can do by using
rowSums
:this is little bit tricky, and @Vincent's approach is more general.