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

R语言如何基于code列无重复条件筛选嵌套列表元素

R 嵌套data.table列表按列重复值过滤方案

你已经掌握了单个列表元素的重复判断逻辑,只需要将该逻辑批量应用到所有列表元素上做筛选即可,有以下几种常用实现方式:

基础R实现(无需额外安装包)

方法1:使用Filter函数(最简洁)

myList_filtered <- Filter(function(x) !any(duplicated(x$code)), myList)

Filter会自动遍历列表的每一个元素,保留判断条件返回TRUE的元素,这里的!any(duplicated(x$code))就是筛选code列无重复值的元素。

方法2:结合sapply逻辑索引

如果你之前尝试用lapply没成功,是因为lapply返回的是列表格式的判断结果,换成sapply返回逻辑向量就可以直接索引原列表:

# 生成保留元素的逻辑索引:TRUE=保留,FALSE=删除
keep_index <- sapply(myList, function(x) !any(duplicated(x$code)))
# 索引原列表得到结果
myList_filtered <- myList[keep_index]

tidyverse风格实现(用purrr包)

如果习惯用tidyverse语法,用purrr的keep函数写法更简洁:

library(purrr)
myList_filtered <- keep(myList, ~!any(duplicated(.$code)))

以上三种方法得到的结果都和你给出的预期输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 11:45:06