代码之家  ›  专栏  ›  技术社区  ›  Denis

如何获得唯一的命名列表?

r
  •  4
  • Denis  · 技术社区  · 6 年前

    这是一个简单的问题,我想我可能可以重新发明轮子,写一些定制的东西,但我相信一定有一个简单的方法来做到这一点,我现在想不起来。假设我有一个列表:

    l <- list("NY"=10001, "CT"=10002, "CT"=10002)
    

    list("NY"=10001, "CT"=10002)
    

    我试着用 unique(l) 但它只是返回:

    list(10001, 10002)
    

    如何获得唯一列表,但保留分配给值的名称?

    3 回复  |  直到 6 年前
        1
  •  4
  •   zx8754    6 年前

    使用

    l[ !duplicated(l) ]
    
        2
  •  3
  •   s_baldur    6 年前

    鉴于此

    每个字符串映射到一个数字

    l[unique(names(l))]
    

    编辑:

    tapply(l, names(l), `[`, 1)
    
        3
  •  1
  •   LuukvGorp    6 年前

    l=list("NY"=10001, "CT"=10002, "CT"=10002)
    l[!duplicated(l)]
    

    $NY
    [1] 10001
    
    $CT
    [1] 10002