首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中移除给定模式之前的字符

在R中移除给定模式之前的字符
EN

Stack Overflow用户
提问于 2015-08-14 07:25:42
回答 3查看 56关注 0票数 1

我有一个名为my.files的对象,它包含要处理的文件的完整路径。我需要删除(包括) "BAM/“之前的字符,并且只保留"BAM/"之后的字符并获得result。我想在循环中使用它作为输出的列名,这样一个班轮就更合适了。

代码语言:javascript
复制
my.files<-c("/media/BAM/14066.bam","/data/BAM/14091.bam","/code/BAM/sort.bam","/media/BAM/ReCal.sort.bam")  

结果

代码语言:javascript
复制
"14066.bam"  "14091.bam"  "sort.bam"  "ReCal.sort.bam"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-14 07:28:21

代码语言:javascript
复制
> gsub("(.+)BAM/", "", my.files)
[1] "14066.bam"      "14091.bam"      "sort.bam"       "ReCal.sort.bam"
票数 3
EN

Stack Overflow用户

发布于 2015-08-14 07:43:09

我会锚定匹配到您的文件路径的末尾,作为一般的解决方案。

代码语言:javascript
复制
sub(".*/(.+)$", "\\1", my.files)
票数 1
EN

Stack Overflow用户

发布于 2015-08-14 07:45:07

我想您想要提取文件路径的基本名称。它可以使用已经可用的basename函数来完成。

代码语言:javascript
复制
basename(my.files)
#[1] "14066.bam"      "14091.bam"      "sort.bam"       "ReCal.sort.bam"

或者另一种选择是使用regex查找器从str_extract中提取stringr。在这里,我们匹配的字符不是/ ([^/]+),它在/ ((?<=/))后面,直到字符串($)的末尾。

代码语言:javascript
复制
library(stringr)
str_extract(my.files, '(?<=/)[^/]+$')
#[1] "14066.bam"      "14091.bam"      "sort.bam"       "ReCal.sort.bam"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32004537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档