r - Strsplit 并计算出现次数

标签 r

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

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 的 countn_distinct 函数。

关于r - Strsplit 并计算出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56652179/

相关文章:

r - 在 ggplot2 中绘制线条和群体审美

r - 将 x 轴设置为与 y 轴在 0 处与点阵相交

r - ggplot2 中 glm 和 stat_smooth 的逻辑回归预测值不同

Rcpp - 如何计算 rowSums 恰好为 1 的矩阵

r - 将字符列合并为新列

r - 如何使用R通过第一行绑定(bind)具有不同行数的多个数据集

arrays - r 中的列表数组

r - 计算矩阵列表 R 的按元素分位数

r - 跳过或删除两个模式之间的行

拨浪鼓安装错误: Invalid root element: