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

R语言如何提取数据框列唯一值并剔除指定向量中的元素

提取数据框指定列唯一值并剔除指定取值的R实现

需求

提取数据框area_df中all_areas列的唯一值,剔除向量area1、area2中包含的所有取值,最终预期返回结果为"town"、"city"、"village"。

预置测试代码

set.seed(1)
area_df = data.frame(all_areas = sample(rep(c("foo", "bar", "big", "small", "town", "city", "village"),5),20),
                    number =  sample(1:100, 20))

area1 = c("foo", "bar")
area2 = c("big", "small")

实现方式

方法1:Base R 原生实现(无需依赖第三方包)

直接用unique()取目标列的唯一值,再用setdiff()和待排除值集合做差集即可:

# 合并所有待排除的取值
exclude_set <- c(area1, area2)
# 计算差集得到结果
result <- setdiff(unique(area_df$all_areas), exclude_set)

运行后输出result即可得到预期结果:

> result
[1] "town"    "city"    "village"

方法2:dplyr 语法实现

如果日常使用tidyverse生态的工具链,可以用以下写法,返回结果完全一致:

library(dplyr)
result <- area_df %>%
  distinct(all_areas) %>%
  filter(!all_areas %in% c(area1, area2)) %>%
  pull(all_areas)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 08:54:19