如何命名未命名列表的元素

How to name the elements of an unnamed list

我有一个如下所示的列表:

setlist2 <- list(wsb_b6, wsb_id8)
[[1]]
[1] "Gm10116"       "Tpm3-rs7"      "Wdfy1"         "Rps3a2"        "AK157302"      "Gm6563"        
"Gm9825"        "Gm10259"       "Gm6768" 
[[2]]
 [1] "Gm6401"        "Ecel1"         "Hpca"          "Tmem176a"      "Lepr"          
"Baiap3"        "Fam183b"       "Vsx2"          "Vtn"          

我需要它看起来像这样:

$wsb_b6
    [1] "Gm10116"       "Tpm3-rs7"      "Wdfy1"         "Rps3a2"        "AK157302"      "Gm6563"        
    "Gm9825"        "Gm10259"       "Gm6768" 
$wsb_id8
    [1] "Gm6401"        "Ecel1"         "Hpca"          "Tmem176a"      "Lepr"          
"Baiap3"        "Fam183b"       "Vsx2"          "Vtn"

我知道通过手动操作我可以实现,但每个都超过 100,必须有更好的方法

听起来您想创建一个命名列表。具体来说,您想创建一个命名列表,其中的名称取自环境中变量的名称。

这类似于这个问题:Can lists be created that name themselves based on input object names?

我不相信在 base R 中有一个简单的函数可以做到这一点,但你可以使用包 Hmisc:

中的函数 llist
library(Hmisc)

setlist2 <- llist(wsb_b6, wsb_id8)

使用dplyr::lst

setlist2 <- dplyr::lst(wsb_b6, wsb_id8)

#我发现我不得不取消列出我之前的两个列表

wsb_b6 <-wsb_b6[,1]
wsb_b6 <-unlist(wsb_b6)

wsb_id8 <-wsb_id8[,1]
wsb_id8 <- unlist(wsb_id8)

#然后再列出来,但是像这样

   setlist2 <-list(wsb_b6=wsb_b6, wsb_id8= wsb_id8)