从R中的列表列表中删除重复项的最佳方法
我有一个有名字的列表,我想有一个有效的方法来删除重复,这就是,我只想保留第一次出现“单词”(例如:“嘿”)。这是我现在正在使用的以下代码从R中的列表列表中删除重复项的最佳方法,r,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) } 这将在列表列表中生成空列表(
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怎么样
mcli这里的这条线索,由@akrun回答,回答了这个问题:
要将其应用于您的代码:
unmcli <- unlist(mcli)
res<- Map('[', mcli, relist(!duplicated(unmcli), skeleton = mcli))
unmcli这里的这个帖子看起来像是@akrun回答的,它回答了这个问题:
要将其应用于您的代码:
unmcli <- unlist(mcli)
res<- Map('[', mcli, relist(!duplicated(unmcli), skeleton = mcli))
unmcli
> mcli
[[1]]
[1] "hey" "hou"
[[2]]
[1] "yei"
unmcli <- unlist(mcli)
res<- Map('[', mcli, relist(!duplicated(unmcli), skeleton = mcli))