【问题标题】:How to generate all possible strings given variable characters at given locations in R?如何在R中的给定位置生成给定变量字符的所有可能字符串?
【发布时间】:2021-02-19 08:08:42
【问题描述】:

给定一个有序的字符串向量,其中每个字符串显示该位置的可能字符,我怎样才能得到所有可能的字符串组合?

例如,给定向量:

vec <- c("A", "A", "T", "C", "AG", "ACG", "T", "A", "A")

可能的字符串组合,给定位置 5 可以是“A”或“G”,而 6 可以是“A”、“C”或“G”是:

strings <- c("AATCAATAA"
             "AATCACTAA"
             "AATCAGTAA"
             "AATCGATAA"
             "AATCGCTAA"
             "AATCGGTAA")

【问题讨论】:

    标签: r string combinations


    【解决方案1】:

    将你的向量分割成单个字符,然后使用expand.grid():

    vec <- c("A", "A", "T", "C", "AG", "ACG", "T", "A", "A")
    
    strings <- expand.grid(strsplit(vec, ""), stringsAsFactors = FALSE)
    strings
    #>   Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 Var9
    #> 1    A    A    T    C    A    A    T    A    A
    #> 2    A    A    T    C    G    A    T    A    A
    #> 3    A    A    T    C    A    C    T    A    A
    #> 4    A    A    T    C    G    C    T    A    A
    #> 5    A    A    T    C    A    G    T    A    A
    #> 6    A    A    T    C    G    G    T    A    A
    

    这为我们提供了一个数据框,但我们可以将这些行粘贴在一起以获得一个向量:

    apply(strings, 1, paste0, collapse = "")
    #> [1] "AATCAATAA" "AATCGATAA" "AATCACTAA" "AATCGCTAA" "AATCAGTAA" "AATCGGTAA"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 2012-02-28
      • 2019-05-19
      • 1970-01-01
      • 2017-11-23
      • 2020-02-19
      • 2011-05-13
      相关资源
      最近更新 更多