首页 > 解决方案 > Strsplit 和 count 出现次数

问题描述

有没有办法像这样拆分字符串?

A1BG\tAAAGGGCGTTCACCGG\t2 A1BG\tAAGATAGCATCCCACT\t1

我想用“\”分割,以便计算在这种情况下基因是 A1BG 的文件中有多少基因,以及代码在哪里,例如 AAAGGGCGTTCACCGG 和 AAGATAGCATCCCACT。我在下面的尝试没有成功。

strsplit(mydf, '\')[[1]]

任何人都可以帮助我吗?

标签: r

解决方案


我们可以尝试匹配正则表达式模式\b[ACGT]{16}\b,然后计算输入字符串中的匹配数:

x <- "A1BG\tAAAGGGCGTTCACCGG\t2 A1BG\tAAGATAGCATCCCACT\t1"
matches <- regmatches(x, gregexpr("\\b[ACGT]{16}\\b", x, perl=TRUE))[[1]]
length(matches)

[1] 2

如果基因中的碱基对数可能不完全是 16,那么尝试选择在这种情况下会导致正确计数的基因长度(例如,在 10 到 20 个碱基对之间)。


推荐阅读