You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除列表中子列表名称的gene-前缀报错问题求助

移除net列表元素名称中的"gene-"前缀问题解决

为啥原代码报错?

你写的lapply会硬给列表里所有元素改名字,但net里不少元素根本没法这么操作:比如goodSamples是没名字的逻辑向量,dendrograms是hclust对象(当前labels为NULL),还有TOMFiles直接是NULL。强行给这些对象设名称,就会触发那个"尝试给NULL设置属性"的错误。

正确代码

只挑那些有名称、且名称带"gene-"前缀的元素处理,其他元素不动:

net_cleaned <- lapply(net, function(x) {
  # 先判断当前元素有没有可用的名称属性
  if (!is.null(names(x)) && length(names(x)) > 0) {
    # 把名称里的"gene-"去掉
    new_names <- sub("^gene-", "", names(x))
    setNames(x, new_names)
  } else {
    # 没名称的元素直接原样返回
    x
  }
})

可选:给树状图补基因名

如果你的dendrograms里的hclust对象需要显示处理后的基因名(当前labels是NULL),可以单独补一下:

# 假设树状图的基因顺序和colors元素一致
if (!is.null(net_cleaned$dendrograms)) {
  net_cleaned$dendrograms <- lapply(net_cleaned$dendrograms, function(hc) {
    hc$labels <- names(net_cleaned$colors)
    hc
  })
}

验证效果

跑完代码后,检查下colors的名称是否正常:

head(names(net_cleaned$colors))

内容的提问来源于stack exchange,提问作者user5719890

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:10:33