【问题标题】:Delete string from names in sublists从子列表中的名称中删除字符串
【发布时间】:2023-02-13 23:39:34
【问题描述】:

我有一个列表列表,我需要在它发生的任何地方删除“gene-”。 我试过

 lapply(net, FUN = function(x) setNames(x, sub("gene-","", x)))

但我得到了错误

名称(对象)<- nm 中的错误:尝试在 NULL 上设置属性

 head(net)
$colors
        gene-AAAS         gene-AAK1        gene-AAMDC         gene-AAMP        gene-AARS1        gene-AASDH 
        "magenta"           "brown"          "purple"        "darkgrey"           "brown"            "blue" 
    gene-AASDHPPT         gene-AASS         gene-AATK         gene-ABAT        gene-ABCA1       gene-ABCA12 
          "black"    "midnightblue"       "turquoise"          "yellow"       "turquoise"            "pink" 
      gene-ABCA13        gene-ABCA2        gene-ABCA3        gene-ABCA5        gene-ABCA7        
      "turquoise"          "yellow"       "turquoise"       "turquoise"       "turquoise"           
 [ reached getOption("max.print") -- omitted 8990 entries ]

$unmergedColors
        gene-AAAS         gene-AAK1        gene-AAMDC         gene-AAMP        gene-AARS1        gene-AASDH 
       "darkgrey"            "blue"         "magenta"  "darkolivegreen"            "blue"           "brown" 
    gene-AASDHPPT         gene-AASS         gene-AATK         gene-ABAT        gene-ABCA1       gene-ABCA12 
    "lightyellow"      "lightgreen"       "turquoise"         "darkred"       "turquoise"          "grey60" 

 [ reached getOption("max.print") -- omitted 8990 entries ]

$MEs
        MEblack MEgreenyellow MElightcyan    MEyellow MEturquoise      MEpink     MEwhite   MEdarkred
M5  -0.17423916   0.141440817  0.23401244  0.36358728  -0.0220835 -0.18126013  0.05942248 -0.45035371
N3   0.47690393   0.428961135  0.07241255 -0.02557197   0.2238352  0.06742087 -0.09574663  0.52201599

          
$goodSamples
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE

$goodGenes
   [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
  [22] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
 [ reached getOption("max.print") -- omitted 8990 entries ]

$dendrograms
$dendrograms[[1]]

Call:
fastcluster::hclust(d = as.dist(dissTom), method = "average")

Cluster method   : average 
Number of objects: 9990 

【问题讨论】:

  • 可以分享dput(net)吗?或者至少是其中的一部分

标签: r gsub


【解决方案1】:

您的代码几乎可以正常工作,您需要进行两处更改:

  1. 你想修改名字,所以你的内部函数需要读取names(x)

    function(x) setNames(x, sub("gene-","", names(x)))
    
  2. net 包含很多成员。您只想替换 colorsunmergedColors 成员,因此仅将您的函数应用于这些成员。哦,您需要将结果分配回您的对象:

    which = c("colors", "unmergedColors")
    net[which] = lapply(net[which], function(x) setNames(x, sub("gene-","", names(x))))
    

【讨论】:

    猜你喜欢
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2020-04-05
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多