假设我有以下字符串:
s <- "ID=MIMAT0027618;Alias=MIMAT0027618;Name=hsa-miR-6859-5p;Derives_from=MI0022705"
Run Code Online (Sandbox Code Playgroud)
我想恢复之间的字符串";"并"="获得以下输出:
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
Run Code Online (Sandbox Code Playgroud)
我可以使用strsplit()多个拆分元素吗?
G. *_*eck 16
1)strsplit with matrix试试这个:
> matrix(strsplit(s, "[;=]")[[1]], 2)[2,]
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
Run Code Online (Sandbox Code Playgroud)
2)用strsplit GSUB或此使用的strsplit具有gsub:
> strsplit(gsub("[^=;]+=", "", s), ";")[[1]]
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
Run Code Online (Sandbox Code Playgroud)
3)strsplit with sub或this use strsplitwith sub:
> sub(".*=", "", strsplit(s, ";")[[1]])
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
Run Code Online (Sandbox Code Playgroud)
4)strapplyc或在等号后提取连续的非分号:
> library(gsubfn)
> strapplyc(s, "=([^;]+)", simplify = unlist)
[1] "MIMAT0027618" "MIMAT0027618" "hsa-miR-6859-5p" "MI0022705"
Run Code Online (Sandbox Code Playgroud)
增加了额外的strplit解决方案.
| 归档时间: |
|
| 查看次数: |
7278 次 |
| 最近记录: |