R中列表的组合向量

R中列表的组合向量,r,list,vector,R,List,Vector,我有一个包含不同长度向量的列表,如下所示: lst <- list(c(1,2), c(1,2), c(4,5,10,11,12,13), c(7,8,9)) lst [[1]] [1] 1 2 [[2]] [1] 1 2 [[3]] [1] 4 5 10 11 12 13 [[4]] [1] 7 8 9 [[5]] [1] 7 8 9 对于重复向量,我可以使用唯一函数 这里有一个选项。我们取消列出列表,得到一个重复的逻辑向量,将其重新列出到一个列表,该列表与原始列表具有相

我有一个包含不同长度向量的列表,如下所示:

lst <- list(c(1,2), c(1,2), c(4,5,10,11,12,13), c(7,8,9))
lst

[[1]]
[1] 1 2

[[2]]
[1] 1 2

[[3]]
[1]  4  5 10 11 12 13

[[4]]
[1] 7 8 9

[[5]]
[1] 7 8 9

对于重复向量,我可以使用唯一函数

这里有一个选项。我们
取消列出
列表
,得到一个
重复的
逻辑
向量
将其重新列出到一个
列表
,该列表与原始
列表
具有相同的
框架
,基于逻辑
列表
使用
映射
对“l1”进行子集划分,并
筛选出包含0个元素的
列表
元素

Filter(length, Map(`[`, l1, relist(!duplicated(unlist(l1)), skeleton = l1)))
#[[1]]
#[1] 1 2

#[[2]]
#[1]  4  5 10 11 12 13

#[[3]]
#[1] 7 8 9

#[[4]]
#[1] 14 15

#[[5]]
#[1] 19 20
数据
l1我编辑了你的答案,给出了一个可重复的例子。请让我知道,如果这不能正确地说明你的问题了。如果是这样,这是微不足道的:

unique(lst)

对不起,我的问题有错,名单是

[1]  1 2
[1]  1 2
[1]  10  12 13
[1]  7 8 9
[1]  7 8 9
[1]  5 11 12 13
[1]  10 11 12 13
[1]  4 10 11 12 13
[1]  14 15
[1]  19 20
我想得到下面的列表:

[[1]]
[1] 1 2

[[2]]
[1]  4  5 10 11 12 13

[[3]]
[1] 7 8 9
[1]  1 2
[1]  4 5 10 11 12 13
[1]  14 15
[1]  19 20
通过使用独特的功能,我可以删除所有重复的向量 但是,我想将所有共享至少一个元素的向量组合起来EX(10 12 13)

   [1]  5 11 12 13
    [1]  10 11 12 13
    [1]  4 10 11 12 13
得到

4 5 10 11 12 13

@mbr文章中提到的关于
唯一性的OP
,它可能无法与其他重复元素一起工作。与5个列表元素相比,它还获得7个
list
元素。请详细说明您的第一行代码是做什么的?@KarstenW。更新了一些描述。谢谢,我看到它工作了,但我仍然需要理解它,特别是
复制的
在这个设置中是如何有用的。它不会工作,并且已经在OP'post中提到了它,因为提供的示例
unique
工作正常。如果它在OP的真正问题上不起作用,那么我们需要一个不同的例子。我已经在我的帖子中展示了这个例子。你可以检查你的代码,问题不清楚。是否要删除所有重复的数字,无论它们出现在何处,还是需要将任何向量完全包含在另一个向量中才能删除?当前的一个答案处理第一种情况。因此,您希望子列表
[1]10 11 12 13
也被删除,因为这些列表包含在
[1]4 5 10 11 12 13
中。看看这个答案,它可能会解决您的问题:我再次道歉,我后来意识到我的错误。没关系。谢谢你的来信
4 5 10 11 12 13