【问题标题】:Change matrix format更改矩阵格式
【发布时间】:2016-06-02 23:29:47
【问题描述】:

我的文件看起来像

1   11063   upstream_gene_variant
1   13011   intron_variant&non_coding_transcript_variant
1   13289   non_coding_transcript_exon_variant&non_coding_transcript_variant
1   13289   non_coding_transcript_exon_variant&non_coding_transcript_variant&feature_truncation

我想把它改成下面的

    1   11063   upstream_gene_variant
    1   13011   intron_variant   non_coding_transcript_variant  
    1   13289   non_coding_transcript_exon_variant    non_coding_transcript_variant
    1   13289   non_coding_transcript_exon_variant  non_coding_transcript_variant  feature_truncation
  • 标签替换&
  • 将拆分后的字符串放入表格中的单独字段

【问题讨论】:

    标签: python r perl


    【解决方案1】:

    如果我们读取R中的数据,我们可以使用splitstackshape中的cSplit

    library(splitstackshape)
    cSplit(df1, 'V3', '&', 'wide')
    

    数据

    df1 <- structure(list(V1 = c(1L, 1L, 1L, 1L), 
     V2 = c(11063L, 13011L, 
     13289L, 13289L), V3 = c("upstream_gene_variant", 
     "intron_variant&non_coding_transcript_variant", 
     "non_coding_transcript_exon_variant&non_coding_transcript_variant", 
    "non_coding_transcript_exon_variant&non_coding_transcript_variant&feature_truncation"
     )), .Names = c("V1", "V2", "V3"), class = "data.frame", 
    row.names = c(NA, -4L))
    

    【讨论】:

    • 还有cbind(df1[, 1:2], read.table(text = gsub('&amp;', '\t', df1$V3), fill = TRUE))
    【解决方案2】:

    在python中:

    text = open(filename).read()
    with open(filename, 'w') as write_file:
        write_file.write(text.replace("&", "\t"))
    

    【讨论】:

      【解决方案3】:

      python 解决方案:

      import re
      
      formatted_data = ''
      with open('myFile.txt', 'r') as infile:
           for line in infile:
           if '&' in line:
                re.sub(r'[&]*', '\t', line)
           formatted_data += line + '\n'
      
      with open('newData.txt', 'w') as out:
           out.write(formatted_data)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-23
        • 2023-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-02
        • 1970-01-01
        相关资源
        最近更新 更多