我有一个名为mydf
的数据框。我想将列FAM
中的字符与名为_
文件的目录中/mypath/
之前的匹配字符的文件名匹配,并将FAM列中的值替换为相应文件的完整路径
文件:
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
答案 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"