R语言如何按条件删除含NA的行?优先提供dplyr实现方案
R数据框过滤实现方案(dplyr版本)
测试数据
原始测试数据构造代码如下:
df <- data.frame(x = 1:7, y = c(NA, NA, 5, 10, NA, 20, 30))
实现逻辑说明
需要删除的行需要同时满足两个条件:
- y列取值为NA
- 该行的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
相关产品推荐
相关产品推荐

