Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R循环中命名文件_R_Loops_Audio - Fatal编程技术网

在R循环中命名文件

在R循环中命名文件,r,loops,audio,R,Loops,Audio,我有多个音频文件,它们保存在我工作目录的几个子文件夹中。我有一个循环,在第一分钟读取每个文件,然后将它们保存为新文件 library(tuneR) dir.create("New files") FILES<-list.files(PATH, pattern = "audio", recursive = TRUE) for(i in 1:length(FILES)){ OneMIN <- readWave(FILES[i], from = 0, to = 60, units

我有多个音频文件,它们保存在我工作目录的几个子文件夹中。我有一个循环,在第一分钟读取每个文件,然后将它们保存为新文件

library(tuneR)

dir.create("New files")

FILES<-list.files(PATH, pattern = "audio", recursive = TRUE)

for(i in 1:length(FILES)){
  OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
  writeWave(OneMIN, filename = (file=paste0(FILES[i], "_1-min.wav")))
}
库(调谐器)
创建目录(“新文件”)
文件可以使用
file.path()
函数将目录和文件名组合到单个文件路径中,而
sub()
函数将允许您轻松修改文件名:

library(tuneR)

dir.create("New files")

FILES <- list.files(PATH, pattern = "audio", recursive = TRUE)

for(infile in FILES){
  OneMIN <- readWave(infile, from = 0, to = 60, units = "seconds")
  outfile <- file.path("New files", sub('.wav', '_1-min.wav', infile))
  writeWave(OneMIN, filename=outfile)
}
以及:


outfile认为我会发布我的解决方案,它借鉴了@Keith Hughitt的答案和@lmo的评论。感谢他们两人帮我解决了我需要的问题

for(i in 1:length(FILES)){
 OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
 FILE.OUT <- sub("\\.wav$", "_1 min.wav", FILES)
 OUT.PATH <- file.path("New files", basename(FILE.OUT))
 writeWave(OneMIN, filename = OUT.PATH[i])
}
for(1中的i:长度(文件)){

OneMIN
fillesOut@lmo,第一部分运行良好,但第二部分出现错误;
file中的错误(文件名,“wb”):无法打开连接另外:警告消息:in file(文件名,“wb”):无法打开文件“./Newfiles/2017-01-05/File1_1 min.wav”:没有这样的文件或目录
请查看我评论的后半部分。请参阅
?dir.create
outfile <- file.path("New files", sub('.wav', '_1-min.wav', basename(infile)))
for(i in 1:length(FILES)){
 OneMIN <- readWave(FILES[i], from = 0, to = 60, units = "seconds")
 FILE.OUT <- sub("\\.wav$", "_1 min.wav", FILES)
 OUT.PATH <- file.path("New files", basename(FILE.OUT))
 writeWave(OneMIN, filename = OUT.PATH[i])
}