从R中的列表列表中删除重复项的最佳方法

我有一个包含名称的列表列表,并且我想拥有一种删除重复项的有效方法,这就是我只想保留第一次出现“单词”的情况(例如:“嘿”)。这是我现在使用的以下代码。


del <- function(a,b){return(a[!a%in%b])}

for(i in 1:length(mcli)){ 

  temp<-mcli[[i]]
  mcli<-sapply(mcli,del,b=temp)
  mcli[[i]]<-temp
  #print(i)
}

变量mcli是列表的列表:

mcli<-list()
mcli[[1]]<-c("hey","hou")
mcli[[2]]<-c("yei","hou")
mcli[[3]]<-c("yei","hey")

因此变量将是:

> mcli
[[1]]
[1] "hey" "hou"

[[2]]
[1] "yei" "hou"

[[3]]
[1] "yei" "hey"

这将在列表列表内生成空列表(第三个列表,因为其中的所有单词都与以前的列表重复),因此最后运行:

mcli<-Filter(Negate(function(X){length(X)==0}),mcli)

结果应为:

> mcli
[[1]]
[1] "hey" "hou"

[[2]]
[1] "yei"

先感谢您。