strsplit 多个定界符 r

Strsplit multiple delimiters r

我想拆分这个基因组坐标:chr1:713625-714625

只有起始坐标:713625

我试过这个命令:

data.table(unlist(lapply(data$gene,function(x)unlist(strsplit(x, [:]))[2])))$V1

但它给了我这个:713625-714625

你有什么建议吗

以下代码提取字符串中 :- 之间的所有内容:

string <- c("chr1:713625-714625")
gsub(".*[:]([^.]+)[-].*", "\1", string)

输出:

[1] "713625"

我尝试了这 2 个命令,它们都给我相同的结果:

gsub(".*[:]([^.]+)[-].*", "\1", string) by Quinten

data.table(unlist(lapply(data$gene,function(x)unlist(strsplit(x, "[:-]"))[2])))$V1

使用strsplit就差不多了,但应该使用[:-]:|-

> unlist(strsplit("chr1:713625-714625", "[:-]"))[2]
[1] "713625"

> unlist(strsplit("chr1:713625-714625", ":|-"))[2]
[1] "713625"