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

在R语言中将含不同长度表格的列表转换为无重复表格

解决列表合并后去重的问题

嘿,我懂你的需求啦——你把不同长度的向量列表合并成了一个长向量,但里面混了不少重复值,想要得到无重复的结果对吧?其实操作很简单,只需要在合并步骤后加上去重处理就行。

具体实现步骤

  1. 先用你原本的方法把列表合并成单一向量(这一步的逻辑没问题)
  2. 对合并后的向量调用unique()函数,就能自动剔除重复值

代码示例(分步写法)

# 假设你的列表名为loser,先合并成完整向量
combined_vector <- do.call(c, loser)
# 对合并后的向量去重
unique_result <- unique(combined_vector)

更简洁的一行写法

unique_result <- unique(do.call(c, loser))

如果还想让最终结果按从小到大排序,可以再嵌套一层sort()函数:

sorted_unique_result <- sort(unique(do.call(c, loser)))

用你的示例数据测试验证

比如你的列表是:

loser <- list(
  c(16,21,28,36,47,49,51,62,71,80,87,93,95,4,2,1,2,1,3,1,1,1,1,2,2,1),
  c(16,36,47,49,71,1,2,3,1,1),
  c(4,36,47,71,87,98,1,1,1,1,1,2),
  c(16,21,47,49,56,62,71,80,87,93,1,1,1,1,1,1,1,1,1,1)
)

运行unique(do.call(c, loser))会得到保留首次出现顺序的无重复结果:

[1] 16 21 28 36 47 49 51 62 71 80 87 93 95  4  2  1  3 56 98

如果用sort()处理,结果会变成从小到大排列的无重复数值:

[1]  1  2  3  4 16 21 28 36 47 49 51 56 62 71 80 87 93 95 98

这样就完全满足你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:43:15