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

在R语言中筛选data.frame里Nm相同但Descr不同的行

筛选Nm列值相同但Descr列值不同的行

下面提供两种R语言的实现方法,均能得到你需要的结果:

方法1:使用dplyr(tidyverse工具集)

这是直观易读的实现方式,适合熟悉tidyverse语法的用户:

library(dplyr)

# 执行筛选逻辑
desired_result <- DATA %>%
  group_by(Nm) %>%
  # 仅保留Descr存在多个不同值的Nm分组
  filter(n_distinct(Descr) > 1) %>%
  ungroup()

# 查看结果
print(desired_result)

运行后输出结果与Desired_output完全一致:

# A tibble: 4 × 3
     Cd Nm    Descr    
  <int> <chr> <chr>    
1   710 spa   Castilian
2  4260 spa   Spanish  
3  2290 gr    Greek    
4  1213 gr    Greek_b  

方法2:使用基础R(无需额外安装包)

如果不想依赖第三方包,可以用基础R的ave函数完成需求:

# 计算每个Nm分组中Descr的唯一值数量
group_descr_unique_count <- ave(
  x = as.integer(factor(DATA$Descr)),
  by = DATA$Nm,
  FUN = function(x) length(unique(x))
)

# 筛选出分组内唯一Descr数量大于1的行
desired_result <- DATA[group_descr_unique_count > 1, ]

# 查看结果
print(desired_result)

输出结果同样符合要求:

Cd  Nm     Descr
1  710 spa Castilian
2 4260 spa   Spanish
3 2290  gr    Greek
4 1213  gr  Greek_b

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:31:01