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

R语言如何按条件删除含NA的行?优先提供dplyr实现方案

R数据框过滤实现方案(dplyr版本)

测试数据

原始测试数据构造代码如下:

df <- data.frame(x = 1:7, y = c(NA, NA, 5, 10, NA, 20, 30)) 

实现逻辑说明

需要删除的行需要同时满足两个条件:

  1. y列取值为NA
  2. 该行的x值小于y列非空最小值对应的行的x值

完整实现代码

# 加载dplyr包
library(dplyr)

# 步骤1:计算y列非空最小值对应的x值
min_y_x <- df %>%
  filter(!is.na(y)) %>%
  slice_min(y, n = 1) %>%
  pull(x)

# 步骤2:按条件过滤数据
result_df <- df %>%
  filter(!(is.na(y) & x < min_y_x))

# 输出验证结果
print(result_df)

输出结果

运行后得到的目标数据框如下,和需求一致:

x  y
1 3  5
2 4 10
3 5 NA
4 6 20
5 7 30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:09:04