我有一个名为my.files
的对象,它包含我想要使用的文件的完整路径。我需要在(包括)“BAM /”之前删除字符,并且只保留"BAM/"
之后的字符并获取result
。我想在循环中使用它作为输出的列名,因此一个衬垫更合适。
my.files<-c("/media/BAM/14066.bam","/data/BAM/14091.bam","/code/BAM/sort.bam","/media/BAM/ReCal.sort.bam")
结果
"14066.bam" "14091.bam" "sort.bam" "ReCal.sort.bam"
答案 0 :(得分:3)
> gsub("(.+)BAM/", "", my.files)
[1] "14066.bam" "14091.bam" "sort.bam" "ReCal.sort.bam"
答案 1 :(得分:1)
我会将匹配锚定到文件路径的末尾,作为一般解决方案。
sub(".*/(.+)$", "\\1", my.files)
答案 2 :(得分:1)
我想你想要提取文件路径的基本名称。它可以使用已有的basename(my.files)
#[1] "14066.bam" "14091.bam" "sort.bam" "ReCal.sort.bam"
函数完成。
str_extract
或stringr
的另一个选项/
使用一些正则表达式的外观。在这里,我们匹配[^/]+
(/
)之后的(?<=/)
($
)字符,直到字符串结尾(library(stringr)
str_extract(my.files, '(?<=/)[^/]+$')
#[1] "14066.bam" "14091.bam" "sort.bam" "ReCal.sort.bam"
)。< / p>
<td>