R语言如何删除向量中含重复值的元素的所有实例
R语言实现仅保留向量中无重复元素的方法
核心思路都是先统计每个元素的出现频次,过滤掉所有出现次数大于1的元素,仅保留出现恰好1次的元素即可,以下提供几种常用实现方案:
基础R实现(无需加载第三方包)
方法1:借助table()统计频次
just_a_random_vector <- c("A", "B", "B", "C", "C", "D") # 统计每个元素出现次数 elem_freq <- table(just_a_random_vector) # 筛选仅出现1次的元素 res <- names(elem_freq[elem_freq == 1]) print(res) # 输出: "A" "D"
方法2:借助ave()原位筛选
不需要额外做频率表转字符的处理,直接对原向量做索引筛选:
res <- just_a_random_vector[ave(rep(1, length(just_a_random_vector)), just_a_random_vector, FUN = sum) == 1] print(res) # 输出: "A" "D"
dplyr包实现(适合tidyverse生态用户)
library(dplyr) res <- data.frame(val = just_a_random_vector) %>% count(val) %>% filter(n == 1) %>% pull(val) print(res) # 输出: "A" "D"
内容的提问来源于stack exchange,提问作者AlSub
相关产品推荐
相关产品推荐

