You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何删除矩阵中取值非0和1的对应整行数据

R语言矩阵过滤实现方案

你构造的默认是单列8行矩阵,可直接按元素取值筛选符合要求的行,以下是可直接运行的实现代码:

基础R实现(适配单列矩阵场景)

  1. 构造原始矩阵
df <- matrix(c(1,0,3,1,0,0,99,2))
  1. 过滤仅含0/1的行
df_filtered <- df[df %in% c(0,1), , drop = FALSE]
  • 逻辑说明:%in% 会逐个判断矩阵元素是否属于0、1的取值集合,返回的逻辑向量直接用于行索引;drop = FALSE 用来保证输出结果仍是矩阵格式,避免自动降维为向量。

通用实现(适配多列矩阵场景)

如果后续你的矩阵扩展为多列,需要判断整行所有元素都是0或1才保留,可以使用行遍历的写法:

df_filtered <- df[apply(df, 1, function(x) all(x %in% c(0,1))), , drop = FALSE]
  • 逻辑说明:apply(df, 1, ...) 按行遍历矩阵,all(x %in% c(0,1)) 判断当前行所有元素都符合0/1的取值要求,符合条件的行会被保留。

结果验证

过滤后的输出结果如下,完全匹配你需要的保留取值:

[,1]
[1,]    1
[2,]    0
[3,]    1
[4,]    0
[5,]    0

内容的提问来源于stack exchange,提问作者nero7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:06:06