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

如何移除R语言数据框中所有Num值均为NA的分组?

移除全NA分组的解决方案

这里提供两种常用的R语言实现方式,帮你移除所有Num列全为NA的分组(比如示例中的C组):

方法一:基础R原生写法

先筛选出Num列不全为NA的分组,再保留这些分组的行:

# 提取符合条件的分组名
valid_groups <- unique(df$Group)[tapply(df$Num, df$Group, function(x) !all(is.na(x)))]
# 过滤数据框
df_filtered <- df[df$Group %in% valid_groups, ]

方法二:tidyverse(dplyr)简洁写法

如果习惯使用管道式语法,可以用dplyr包实现:

library(dplyr)

df_filtered <- df %>%
  group_by(Group) %>%
  filter(!all(is.na(Num))) %>%  # 保留Num不全为NA的分组
  ungroup()  # 可选:取消分组状态,方便后续操作

最终结果

执行后得到的df_filtered会保留A、B组的所有行,移除C组:

> df_filtered
  Group Num
1     A   1
2     A   2
3     A   3
4     B   1
5     B   2
6     B  NA

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:55:17