R 查找包含向量元素的列表对象

R 查找包含向量元素的列表对象,r,R,我有一个向量列表。在下面的设置中,有没有办法找到包含特定矢量元素的列表对象 示例数据: > head(mylist) $ENSG00000049449 [1] 5954 440034 $ENSG00000050327 [1] 7984 102725117 $ENSG00000072195 [1] 29904 100996693 $ENSG00000091262 [1] 368 105369239 $ENSG00000100031 [1]

我有一个向量列表。在下面的设置中,有没有办法找到包含特定矢量元素的列表对象

示例数据:

> head(mylist)
$ENSG00000049449
[1]   5954 440034

$ENSG00000050327
[1]      7984 102725117

$ENSG00000072195
[1]     29904 100996693

$ENSG00000091262
[1]       368 105369239

$ENSG00000100031
[1]      2678     91227     92086    728441 102724197

$ENSG00000103319
[1]     29904 101930123
>magicalstuff(7984)
[1] "ENSG00000050327"

>magicalstuff(29904)
[1] "ENSG00000072195" "ENSG00000103319"
预期输出:

> head(mylist)
$ENSG00000049449
[1]   5954 440034

$ENSG00000050327
[1]      7984 102725117

$ENSG00000072195
[1]     29904 100996693

$ENSG00000091262
[1]       368 105369239

$ENSG00000100031
[1]      2678     91227     92086    728441 102724197

$ENSG00000103319
[1]     29904 101930123
>magicalstuff(7984)
[1] "ENSG00000050327"

>magicalstuff(29904)
[1] "ENSG00000072195" "ENSG00000103319"
谢谢

例如:

names(mylist)[(unlist(lapply(mylist, function(x) 29904 %in% x)))]
[1] "ENSG00000072195" "ENSG00000103319"
神奇的功能:

magicalstuff <- function(x) {
  ind <- unlist(lapply(mylist, `%in%`, x=x))
  names(mylist)[ind]
}

magicalstuff(7984)
#[1] "ENSG00000050327"
magicalstuff
findme-findme(2678,mylist)
#[1] “ENSG000072195”
mylist[1]“ENSG000050327”
姓名(mylist[grep(“29904”,mylist)])
#>[1]“ENSG000072195”“ENSG0000103319”

谢谢!但显然,该解决方案还匹配部分匹配向量元素的列表对象。当您查找“7984”时,它也会匹配包含“12798492”的列表对象。这是一个简单的修复方法。
.grep(“^7984$”。