【问题标题】:Name lists in R (not the elements)R中的名称列表(不是元素)
【发布时间】:2017-10-26 09:23:12
【问题描述】:

我正在尝试命名一个嵌套列表。这将是我的嵌套列表中的几个列表之一:

paths_list[i]

[[1]]
[[1]]$CLASS
[1] "Signal Transduction (Saccharomyces cerevisiae)"


[[1]]$GENES
[1] "YPR165W"



[[1]]$ORGANISM
[1] "Saccharomyces cerevisiae"

基本上,我想要做的是将 ID 名称,例如 R-SCE-198203 作为列表的主名称(因此在 $CLASS 上方,它应该出现名称 R-SCE-198203)。列出 paths_list[i] 的名称为 R-SCE-198203。

我想要这个:

paths_list[i]

    [[1]]R-SCE-198203
    [[1]]$CLASS
    [1] "Signal Transduction (Saccharomyces cerevisiae)"


    [[1]]$GENES
    [1] "YPR165W"



    [[1]]$ORGANISM
    [1] "Saccharomyces cerevisiae"

我已经搜索过,我找到的最接近的是 lapply 但你最终是这样的:

setNames(lapply(tabs, setNames, varB), varA)
#$varA1
#$varA1$varB1
#[1] "integer"
#
#$varA1$varB2
#[1] "integer"
# ...

我想避免主 ID 出现在列表的每个元素中(不希望 $varA1 一直重复)。

这可能吗?

提前致谢

【问题讨论】:

    标签: r list nested


    【解决方案1】:

    我认为您的lapply 方法已经是您想要的。子元素的“真实”名称没有$ 符号。当您打印完整列表对象时,控制台中的输出会显示这些符号以帮助您读取数据,但是,如果您通过 [[]] 访问单个子元素,则它们的名称没有这些符号。也许下面的代码示例会有所帮助。检查输出。

    a_list <- list("dummy")
    names(a_list) <- "dummyname"
    
    a_list <- list(a_list)
    names(a_list) <- "name"
    
    a_list
    #$name
    #$name$dummyname
    #[1] "dummy"
    
    names(a_list)
    #[1] "name"
    
    a_list[[1]]
    #$dummyname
    #[1] "dummy"
    
    names(a_list[[1]])
    #[1] "dummyname"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 2015-12-22
      • 2023-03-29
      • 2014-06-08
      • 1970-01-01
      • 2023-01-28
      • 2021-11-29
      相关资源
      最近更新 更多