在较大的列表中删除重复项,同时将命名的数字保留在R中

问题描述

我有一个很大的列表(1 582 238个元素),我想删除所有重复项,同时保留数字的名称

我的列表看起来像这样

$`GUE/NGL.mepid`
[1] 197701
...
$`Verts/ALE.mepid`
[1] 197837

可在此处使用:https://github.com/JMcrocs/MEPVote/blob/master/MEPList.rds

当我使用unique(mylist)时,我会丢失数字的名称

 [[1]]
[1] 197701

[[2]]
[1] 197533

[[3]]
[1] 197521

不幸的是,该列表太大,无法转换为data.frame,因此我没有找到解决方案。

请你能帮我吗?

最好的问候

解决方法

使用{props.superheros?props.superheros.map((element)=>{ //your code }) :null //if undefined it prints nul } 而不是!duplicated()的子集来保留名称。

unique()

或再次使用l <- list(197701,197837,197701) names(l) <- c("GUE/NGL.mepid","Verts/ALE.mepid","GUE/NGL.mepid") # > unique(l) # [[1]] # [1] 197701 # # [[2]] # [1] 197837 # # > l[!duplicated(l)] # $`GUE/NGL.mepid` # [1] 197701 # # $`Verts/ALE.mepid` # [1] 197837 来检索唯一元素的名称。 (unique()保持出现的顺序)。

unique()
,

尝试一下:

df <- readRDS('MEPList.rds')
df1 <- as.data.frame(do.call(rbind,df))
df2 <- df1[!duplicated(df1$V1),drop=F]

输出:

head(df2)

                    V1
GUE.NGL.mepid   197701
GUE.NGL.mepid.1 197533
GUE.NGL.mepid.2 197521
GUE.NGL.mepid.3 187917
GUE.NGL.mepid.4 124986
GUE.NGL.mepid.5 197529

然后,您可以格式化rownames()以获得名称。