R语言中如何用gsub批量去除数据框列名的指定后缀
解决R语言批量去除数据框列名后缀的问题
问题原因
你之前的代码里设置了fixed = TRUE,这会让gsub把|当成普通字符(而非正则表达式中的“或”逻辑),因此无法同时匹配_CIBERSORT和_MCPcounter两个后缀,只有单独指定其中一个后缀时才能生效。
正确代码
去掉fixed = TRUE参数,让正则表达式正常发挥“或”匹配的作用:
names(cibersort2) <- gsub("_CIBERSORT|_MCPcounter", "", names(cibersort2))
扩展方案(适配更多后缀场景)
如果还有其他同格式的后缀需要处理,直接把它们加入正则表达式的|分隔列表即可:
# 示例:新增_Quantiseq后缀的处理 names(cibersort2) <- gsub("_CIBERSORT|_MCPcounter|_Quantiseq", "", names(cibersort2))
如果所有后缀都是“下划线+任意字母数字组合”的格式,还可以用更灵活的正则写法一次性匹配所有这类后缀:
# 匹配下划线开头、直到字符串末尾的任意字母数字组合后缀 names(cibersort2) <- gsub("_\\w+$", "", names(cibersort2))
内容的提问来源于stack exchange,提问作者PesKchan
相关产品推荐
相关产品推荐

