在R中移除列表内所有重复值(仅保留出现次数为1的元素)
R 筛选仅出现一次的向量元素的直接实现方案
- 基础R无额外依赖实现(无需转换为数据框)
用ave()函数分组统计每个值的出现次数,直接做逻辑筛选即可,代码示例:
运行后输出的# 原向量 f <- c(1,2,3,4,5,6,7,8,3,2,4,523,23,1,2,3,4,5) # 筛选仅出现一次的元素 res <- f[ave(rep(1, length(f)), f, FUN = sum) == 1]res即为6 7 8 23 523,如果需要逗号分隔的字符串格式,可追加paste(res, collapse = ",")。 - 基于频次表的简化写法
直接对table()返回的频次表做索引,无需转为数据框:res <- as.numeric(names(table(f)[table(f) == 1]))
两种方案都可以直接得到目标结果,不需要额外的类型转换步骤。
内容的提问来源于stack exchange,提问作者Johannes Stephan
相关产品推荐
相关产品推荐

