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

R语言如何筛选x、z、m列相同但y列不同的所有对应行

R 实现分组筛选方案

核心逻辑:先按x、z、m三列分组,筛选出组内y列唯一值数量大于1的分组,再保留这些分组的全部行。

方法1:使用dplyr包(tidyverse风格,常用易读)

library(dplyr)

result <- df %>%
  group_by(x, z, m) %>%
  filter(n_distinct(y) > 1) %>%
  ungroup()

# 验证输出
print(result)

输出结果和你给出的目标df[6:7,]完全一致。

方法2:Base R 实现(无需安装额外依赖包)

result <- df[as.logical(ave(df$y, df$x, df$z, df$m, FUN = function(col) length(unique(col)) > 1)), ]

方法3:data.table 实现(适合处理大数据量场景)

library(data.table)
setDT(df)
result <- df[, .SD[uniqueN(y) > 1], by = .(x, z, m)]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:06