我的bamFiles目前是"11.bam“"114.bam”"132.bam“"60.bam”。我想将chr16_添加到每个文件的前面。这些名称应该返回到bamFiles字符向量中。
代码:
bamPath = "C:/Users/User/Downloads/chr16_bam"
for(f in bamPath){file.rename(list.files(pattern=".bam$", all.files=F, full.names=F), paste("chr16", sep="_", f))}回溯:
Error in file.rename(list.files(pattern = ".bam$", all.files = F, full.names = F), :
'from' and 'to' are of different lengths预期产出:
"chr16_11.bam" "chr16_114.bam" "chr16_132.bam" "chr16_60.bam" 发布于 2022-02-18 10:40:54
也许我在这里什么都没得到。如果您的问题仅仅是重命名一堆文件,这应该是可行的。
我将您提到的文件添加到我的主文件夹中:11.bam、114.bam、132.bam、60.bam。
> oldfiles = list.files("~/", pattern = "*.bam")
> oldfiles
# [1] "11.bam" "114.bam" "32.bam" "60.bam"
>
> newfiles = paste0("chr16_", oldfiles)
> newfiles
# [1] "chr16_11.bam" "chr16_114.bam" "chr16_32.bam" "chr16_60.bam"
>
> file.rename(oldfiles, newfiles)
# [1] TRUE TRUE TRUE TRUE
>
> list.files("~/", pattern = "*.bam")
# [1] "chr16_11.bam" "chr16_114.bam" "chr16_32.bam" "chr16_60.bam" 发布于 2022-02-18 12:43:56
试试看这个解决方案,它在我的末端完美地工作,现在轮到你了
> library(reproducible)
> bamPath = "C:/Users/User/Downloads/chr16_bam"
> files <- list.files(bampath ,pattern = "*.bam",full.names = T)
> sapply(files,FUN=function(eachPath){
file.rename(from=eachPath,to= .prefix(eachPath, "chr16_"))
})控制台日志应该如下所示
C:/Documents/Sample/16_161.bam
TRUE
C:/Documents/Sample/16_162.bam
TRUE
C:/Documents/Sample/16_163.bam
TRUE 如果您正在获得"TRUE",那么它的重命名也会检查文件保存的文件夹
https://stackoverflow.com/questions/71171949
复制相似问题