【问题标题】:How to remove duplicated sets from a list and get the first element in R? [duplicate]如何从列表中删除重复的集合并获取 R 中的第一个元素? [复制]
【发布时间】:2016-10-11 09:41:25
【问题描述】:

我有一个向量列表,其中每个向量包含不同数量的数字字符串,例如

A <- list(c(2,3,1,5),c(4,3,1),c(1,4,3),c(3,4,2,1))

我想删除重复的向量,这样结果就是

[[1]]
[1] 1 2 3 5

[[2]]
[1] 1 3 4

[[3]]
[1] 1 2 3 4

我是通过unique(lapply(A, function(x) sort(unlist(x)))) 做的,但是我需要保存每个未排序的唯一向量的第一个元素,即:

[[1]]
[1] 2

[[2]]
[1] 4

[[3]]
[1] 3

谁能帮帮我?

【问题讨论】:

    标签: r list unique lapply


    【解决方案1】:

    我们可以应用duplicated得到sorting之后的逻辑索引,用它来子集list

    A1 <- A[!duplicated(lapply(A, sort))]
    

    获取第一个元素

    lapply(A1, `[`, 1)
    

    如果我们需要sorted 元素,请使用unique

    unique(lapply(A, sort))
    

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 2021-12-08
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多