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

如何简化R代码,定位数据框中多类别关联的异常条目?

简便解决方案

1. 找出所有关联多个类别的数值对应的条目

用dplyr可以一步筛选出所有res值对应多种var的行,无需多次聚合操作:

library(dplyr)

# 筛选出res对应多个var的所有条目
result <- df1 %>%
  group_by(res) %>%
  filter(n_distinct(var) > 1) %>%
  ungroup()

print(result)

运行后会直接输出所有res=100的行(该res关联了A、D两个类别)。

2. 精准定位异常条目(如出现次数最少的类别)

如果要直接锁定每个多类别res里的异常项(比如出现次数最少的var),可以在上述基础上增加计数筛选:

# 定位每个多类别res中出现次数最少的异常条目
anomaly <- df1 %>%
  group_by(res, var) %>%
  mutate(var_count = n()) %>%  # 统计每个res下各var的出现次数
  group_by(res) %>%
  filter(n_distinct(var) > 1, var_count == min(var_count)) %>%  # 筛选多类别res中次数最少的var
  ungroup() %>%
  select(-var_count)  # 去掉临时计数列

print(anomaly)

这段代码会直接输出var=D, res=100的那一行,精准定位目标异常项。

代码逻辑说明

  • n_distinct(var):统计每个res对应的不同var数量,大于1即说明该res关联了多个类别。
  • 全程基于原数据框操作,无需生成额外中间数据框,比原代码更简洁高效,且直接返回具体条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:35:24