创建一个列表,其中每个列表项都具有唯一元素

时间:2016-05-17 12:14:10

标签: r dplyr

我使用循环使用以下代码创建列表

for (i in 1:length(names))
{
a[i]<-filter(global,global$people_names==names[i]) %>% select(Class)
}

names是一个向量,global是一个数据框。我将names的每个元素与每个people_names进行比较并选取Class。如果Class中的值与每个people_names不同,则代码可以正常运行。但是,如果people_names“岩石”有类:class1 class2 class3 class3,我无法 填充我的列表时删除class3的重复。使用select(unique(Class))无济于事。请帮忙。

1 个答案:

答案 0 :(得分:0)

您可以在select之后添加一个管道,然后使用subset()和duplicatelicated()删除违规列上的重复项,这样:

a[i]<-filter(global,global$people_names==names[i]) %>% 
    select(Class) %>%
    subset(!duplicated(Class))

希望这会有所帮助!!