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

R如何使用for循环+if语句或无循环方法删除dataframe指定条件行

R语言删除指定行的实现方案

1. for循环+if语句实现

注意:遍历删除行时需采用倒序遍历,正序遍历会因为删除行后后续行索引自动前移,出现漏处理的问题

# 从最后一行往第一行遍历
for (i in nrow(dataFrameMio):1) {
  # 判断当前行numeri取值是否为2
  if (dataFrameMio$numeri[i] == 2) {
    # 删除对应索引的行
    dataFrameMio <- dataFrameMio[-i, ]
  }
}

2. 无循环实现方案(更适合大数据量场景)

R原生支持矢量运算,无循环方案的执行效率远高于自定义for循环,是更推荐的写法:

  • 基础R逻辑索引写法
# 直接筛选保留numeri不等于2的行
dataFrameMio <- dataFrameMio[dataFrameMio$numeri != 2, ]

# 如果数据存在NA值,用which写法更稳妥,会自动排除NA行
dataFrameMio <- dataFrameMio[which(dataFrameMio$numeri != 2), ]
  • dplyr包简洁写法(适合tidyverse生态用户)
library(dplyr)
dataFrameMio <- filter(dataFrameMio, numeri != 2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:27:05