如何在部分匹配的文件夹中提取文件路径

时间:2016-02-04 11:51:29

标签: r

我有一个名为mydf的数据框。我想将列FAM中的字符与名为_文件的目录中/mypath/之前的匹配字符的文件名匹配,并将FAM列中的值替换为相应文件的完整路径

/ mypath中的

文件:

1_reca.44.bam
12_reca.xx.4.bam
AMA_xtt.33.bam 
SMA_xtt.33.bam 

是myDF

sn      FAM            PAT
1       1              all 
2       12             non
3       AMA            non

结果

sn      FAM                   PAT
1       mypath/1_reca.44.bam      all 
2       mypath/12_reca.xx.4.bam   non
3       mypath/AMA_xtt.33.bam     non

1 个答案:

答案 0 :(得分:1)

我们可以尝试使用match/paste/sub。我们match'FAM'列中的元素与'files'的子字符串(在从_删除字符到字符串末尾之后。数字索引可用于选择元素来自'files',paste来自'mypath'来创建更新的'FAM'列。

mydf$FAM<- paste('mypath',  
           files[match(mydf$FAM,sub('_.*', '', files))], sep='/')
mydf$FAM
#[1] "mypath/1_reca.44.bam"    "mypath/12_reca.xx.4.bam" 
# "mypath/AMA_xtt.33.bam"