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

如何在R语言中按条件删除行?自动移除全为TRUE的行

解决方法

可以通过两种完全自动化的方式实现需求,无需指定任何列名或索引:

方法一:用apply()逐行判断

利用apply()对每一行执行全量检查,筛选出不是所有列都为TRUE的行:

# 筛选保留非全TRUE的行
df_filtered <- df[!apply(df, 1, all), ]
  • apply(df, 1, all):对数据框的每一行(参数1代表行方向)调用all()函数,返回一个逻辑向量,标记每行是否全为TRUE
  • !对结果取反,得到需要保留的行的索引,最终完成筛选

方法二:用行和与列数对比

在R中TRUE等价于1,FALSE等价于0,全为TRUE的行的行和必然等于数据框的列数,据此筛选:

# 筛选行和不等于列数的行(即非全TRUE的行)
df_filtered <- df[rowSums(df) != ncol(df), ]
  • rowSums(df)计算每行的总和
  • ncol(df)自动获取数据框的列数,无需手动指定
  • 通过判断行和是否不等于列数,精准筛选出目标行

最终筛选结果

执行后得到的df_filtered如下:

df1   df2   df3
1  TRUE  TRUE FALSE
2  TRUE FALSE  TRUE
3 FALSE FALSE  TRUE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:42:19