我希望提取第三组括号之间的 string
部分,最好使用基 R
。这是一个示例数据集:
my.data <- read.table(text = '
my.num my.string my.cov
1 Abc(~1)Fgf(~-1+e2:cp)Bca(~-1+g1+g2:ti+g2:cfi+g2:pp+g2:cp)q(~-1+re:se) 10
2 Abc(~1)Fgf(~-1+e1:e2:fi)Bca(~-1+g1+g2:ti+g2:pr+g2:ts+g2:cfi)q(~1) 20
3 Abc(~1)Fgf(~1)Bca(~-1+g1+g2+g2:cp)q(~-1+re:se) 15
', header = TRUE, stringsAsFactors = FALSE)
my.data
这两个结果中的任何一个都会有帮助:
desired.result1 <- read.table(text = '
my.num my.string my.cov
1 Bca(~-1+g1+g2:ti+g2:cfi+g2:pp+g2:cp) 10
2 Bca(~-1+g1+g2:ti+g2:pr+g2:ts+g2:cfi) 20
3 Bca(~-1+g1+g2+g2:cp) 15
', header = TRUE, stringsAsFactors = FALSE)
desired.result1
desired.result2 <- read.table(text = '
my.num my.string my.cov
1 ~-1+g1+g2:ti+g2:cfi+g2:pp+g2:cp 10
2 ~-1+g1+g2:ti+g2:pr+g2:ts+g2:cfi 20
3 ~-1+g1+g2+g2:cp 15
', header = TRUE, stringsAsFactors = FALSE)
desired.result2
我对 regex
很生疏,我什至不知道从哪里开始,也无法在互联网上找到类似的问题。感谢您提供任何建议或帮助。
最佳答案
使用strsplit:
sapply(strsplit(my.data$my.string, split = "(", fixed = TRUE), function(i){
strsplit(i[4], split = ")", fixed = TRUE)[[1]][1]})
# [1] "~-1+g1+g2:ti+g2:cfi+g2:pp+g2:cp" "~-1+g1+g2:ti+g2:pr+g2:ts+g2:cfi" "~-1+g1+g2+g2:cp"
关于r - 提取第三组括号之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42354232/