【问题标题】:How to identify columns of a table with multiple occurrences in R如何识别在R中多次出现的表的列
【发布时间】:2020-02-27 19:31:26
【问题描述】:

如果我有一个包含一列序列(例如“GGGAAAGGGAAT”)的表,我如何选择在单个序列中多次出现“GGG”的行。我有一个包含数百个序列的表。我有使用 RStudio 中的过滤器来识别单个单词出现的序列(例如“GGG”);但是,我很难识别多个单词出现的序列。有没有办法做到这一点?

【问题讨论】:

    标签: r string datatable


    【解决方案1】:

    给你。很高兴您没有使用 Excel 进行此分析;)

    # function to generate gene sequences
    gene_gen <- function() return(paste0(sample(x = c('A','G','T'), size  = 12, replace = T),collapse=''))
    # lets create a data table with a thousand of those  
    df = data.table(replicate(1000,gene_gen()))
    # select lines using a regular expression looking for two instances of GGG in the same sequence
    df[regexpr('GGG.*GGG',V1)==1]
    #Result is 
                 V1
    1: GGGGGAGGGGAG
    2: GGGTATTGGGGT
    3: GGGGAGAAGGGT
    4: GGGTATGGGGTA
    5: GGGTGTGGGAGG
    6: GGGAGGGTGTTG
    

    这里的关键是使用正则表达式。 regexpr('GGG.*GGG', sequence_string) 查找 3 个 GGG 字符,然后查找任何 (.) 零次或多次 (*),然后查找 3 个后续 GGG 字符。 有许多在线正则表达式测试器网站可以帮助您进行培训。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2017-07-20
      相关资源
      最近更新 更多