r - R矩阵:如何根据所有列的总和进行子集化?
问题描述
我有一个非常大的矩阵,> 30,000 个元素。我想删除所有列中值为 0 的所有行。看了很多帖子,我觉得标准差=0或者行数之和=0这样的参数可以去掉。我似乎无法找出一个有效的 R 代码来做到这一点。子集命令很有意义......我将不胜感激任何帮助或建议。
另一种可能有效的方法:
我跑去as.logical(rowSums(matrix !=0))
返回所有值不为 0 的行,这很有效。是否可以添加另一行来创建仅包含返回行的新矩阵TRUE
?
解决方案
我们可以rowSums
在逻辑矩阵上使用,创建一个逻辑vector
和子集的行matrix
m2 <- m1[!!rowSums(m1 != 0),]
数据
m1 <- rbind(0, c(1, 3, 2), c(0, 1,2), c(4, 5, 2))
推荐阅读
- javascript - Javascript对象保留“旧”属性,不能覆盖?
- swift - 如何更改 SpriteKit 中精灵的触摸偏移量?
- python - 在 pytorch 中使用量化模型没有性能提升
- azure - Azure 的 myapps 门户中面向 B2B 用户的聊天机器人
- snowflake-cloud-data-platform - 雪花:为什么在资源争用期间查询会重试两次
- r - 编写我的第一个闪亮的应用程序,如何通过选定的变量进行绘图,为什么这个脚本不起作用?
- python - 如何通过 Pygame 从 MIDI 设备获取输入?
- c++ - 将数据放在私有类中是否理想?(C++)
- javascript - 成功登录后, this.props.history.push 不会进入新页面,因为 ProtectedRoute 不成功
- javascript - 如果数组超出索引,有人可以解释以下函数会发生什么吗?