有没有办法像这样拆分字符串?
A1BG\tAAAGGGCGTTCACCGG\t2 A1BG\tAAGATAGCATCCCACT\t1
我想用“\”分割,以便计算文件中有多少个基因,在这种情况下,A1BG 中有一个基因,有多少代码,例如 AAAGGGCGTTCACCGG 和 AAGATAGCATCCCACT。 我在下面的尝试没有成功。
strsplit(mydf, '\')[[1]]
谁能帮帮我?
最佳答案
看起来您的 TSV(制表符分隔值)表格格式不正确。如果您将空格换成换行符,您可以将其作为表格读入,而无需设置自己的解析规则:
x <- "A1BG\tAAAGGGCGTTCACCGG\t2 A1BG\tAAGATAGCATCCCACT\t1"
x2 <- gsub(" ", "\n", x)
library(data.table)
DT = setnames(fread(x2), c("gene", "code", "num"))[]
# gene code num
# 1: A1BG AAAGGGCGTTCACCGG 2
# 2: A1BG AAGATAGCATCCCACT 1
然后你可以计算每个基因有多少代码
DT[, .N, by=gene]
# or
DT[, .(N = uniqueN(code)), by=gene]
# gene N
# 1: A1BG 2
或者类似地使用 dplyr 的 count
和 n_distinct
函数。
关于r - Strsplit 并计算出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652179/