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

时间:2019-02-05 13:38:27

标签: r

这是一个简单的问题,我想我可能可以重新发明轮子并编写一些自定义内容,但是我敢肯定,必须有一种目前尚无法想到的简便方法。假设我有一个列表:

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

我想要一个列表:

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

我尝试使用unique(l),但它只返回:

list(10001, 10002)

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

3 个答案:

答案 0 :(得分:4)

使用重复的

l[ !duplicated(l) ]

答案 1 :(得分:3)

给出

  

每个字符串都映射到1个数字

我们可以做到:

l[unique(names(l))]

编辑:,另一种选择

tapply(l, names(l), `[`, 1)

答案 2 :(得分:1)

尝试重复的功能:

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

结果:

$NY
[1] 10001

$CT
[1] 10002