【问题标题】:Create a character from column names (in R) [duplicate]从列名创建一个字符(在 R 中)[重复]
【发布时间】:2021-05-30 04:01:59
【问题描述】:

我有一个包含数千列的矩阵,其名称如下所示:

Z41_5_tes_ACGTTCCATAGCCGTA
Z41_5_ACGTTCCAGAGCGGTA
Z53_5_ACGTTCCAGAGCCGTA
Z53_5_ACGTTCCAGATCTGTA
Z41_5_ACGTTGCATAGCGGTA
Z41_5_tes_ACGTTCGCTAGCCGTA

我想创建一个名称包含每列名称开头的向量,如下所示:

Z41_5_tes
Z41_5
Z53_5
Z53_5
Z41_5
Z41_5_tes

我试过了,但在这里我没有捕获 Z41_5_tes。 名称 ]*[^_]).$", "\1", colnames(x@data))

Z41_5
Z53_5

【问题讨论】:

    标签: r regex character


    【解决方案1】:
    1. 删除最后一个下划线后的所有内容。
    sub('_[^_]*$', '', x)
    #[1] "Z41_5_tes" "Z41_5"     "Z53_5"     "Z53_5"     "Z41_5"     "Z41_5_tes"
    
    1. 提取最后一个下划线之前的所有内容。
    sub('(.*)_.*', '\\1', x)
    #[1] "Z41_5_tes" "Z41_5"     "Z53_5"     "Z53_5"     "Z41_5"     "Z41_5_tes"
    

    数据

    x <- c("Z41_5_tes_ACGTTCCATAGCCGTA", "Z41_5_ACGTTCCAGAGCGGTA", 
           "Z53_5_ACGTTCCAGAGCCGTA", "Z53_5_ACGTTCCAGATCTGTA", 
           "Z41_5_ACGTTGCATAGCGGTA", "Z41_5_tes_ACGTTCGCTAGCCGTA")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2015-11-14
      相关资源
      最近更新 更多