使用带有多个分隔符的 strsplit

Kry*_*ryo 5 regex r strsplit

我该如何拆分这个

 Chr3:153922357-153944632(-)
 Chr11:70010183-70015411(-)   
Run Code Online (Sandbox Code Playgroud)

进入

    Chr3  153922357 153944632 - 
    Chr11 70010183  70015411  -   
Run Code Online (Sandbox Code Playgroud)

我试过了strsplit(df$V1,"[[:punct:]]")),但最终结果中没有出现负号

avi*_*seR 2

您还可以尝试str_splitstringr

library(stringr)
lapply(str_split(df$V1, "(?<!\\()\\-|[:\\)\\(]"), function(x) x[x != ""])
Run Code Online (Sandbox Code Playgroud)

结果:

[[1]]
[1] "Chr3"      "153922357" "153944632" "-"        

[[2]]
[1] "Chr11"    "70010183" "70015411" "-"
Run Code Online (Sandbox Code Playgroud)

数据:

df = read.table(text = " Chr3:153922357-153944632(-)
 Chr11:70010183-70015411(-) ")
Run Code Online (Sandbox Code Playgroud)