【发布时间】:2016-06-05 14:49:58
【问题描述】:
我有两个相等的子列表,并希望消除那些重复的列表并以列表格式提供结果。是否有任何功能可以做到这一点,例如相交或独特的应用于向量。我知道我可以取消列出,然后使用唯一的,然后在先前的结构上再次重新列出,但想知道是否有一个函数可以对列表执行与向量相同的操作。我也知道我可以使用 reduce as 来简化列表,然后通过@akrun 应用下面的建议。但是,我正在寻找能够处理具有复杂子列表的列表的解决方案。
TER <- list(list(c(1,2,3),c(1,2,3,4)),list(c(1,2,3),c(1,2,3,4)))
TER
#[[1]]
#[[1]][[1]]
#[1] 1 2 3
#[[1]][[2]]
#[1] 1 2 3 4
#[[2]]
#[[2]][[1]]
#[1] 1 2 3
#[[2]][[2]]
#[1] 1 2 3 4
# Desired Output.
TER
#[[1]]
#[[1]][[1]]
#[1] 1 2 3
#[[1]][[2]]
#[1] 1 2 3 4
【问题讨论】:
-
您需要它作为列表列表吗?否则
unique(do.call(c, TER)) -
@akrun - 是的,因为上面的函数只适用于列表。
-
# 你是对的编辑它应用程序
-
一个选项是
i1 <- duplicated(do.call(c, TER), fromLast=TRUE);Filter(length, Map('[', TER, split(i1, rep(1:2, each =2)))) -
unique也适用于“列表”;unique(TER)似乎会给出你的输出,除非我遗漏了什么
标签: r