Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的列表列表中删除重复项的最佳方法_R - Fatal编程技术网

从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))