У меня есть несколько аудиофайлов, которые хранятся в нескольких подпапках в моем рабочем каталоге. У меня есть цикл, который читается в первую минуту каждого файла, а затем сохраняет их как новый файл.Именование файлов в петле R
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")))
}
Теперь у вас есть пара ошибок;
1) Новые файлы называются, например. «File1.wav_1-min.wav», так что мне нужно переименовать их в «File_1-min.wav»
2) Новые файлы находятся в нескольких подпапках, и я должен затем скопировать их в «Новый файлы ", используя дополнительные шаги вне цикла.
У меня есть обходные пути для решения этих проблем, но я уверен, что есть более элегантный способ сделать это, включив дополнительные строки в цикле. Я хотел бы:
1) вычистить первый «.wav» в имени файла
2) Автоматическое сохранение их в „Новые файлы“
Однако, у меня нет идея о том, как это сделать. Любые предложения приветствуются. Благодарю.
'fillesOut <- sub (" \\. Wav $ "," ", FILES)' должен работать для первой части. 'paste0 (" ./ NewFiles/", filesOut [i]," _1-min.wav ")' должен получить второй. Также см. 'Dir.create' для создания каталогов в R, но если это одноразовый, вы можете просто сделать это вручную. Также существует 'существует' для проверки существования объекта. – lmo
@lmo, первая часть работает красиво, но для второго я получаю сообщение об ошибке; 'Ошибка в файле (имя файла,« wb »): не удается открыть соединение Кроме того: Предупреждающее сообщение: В файле (имя файла,« wb »): не может открыть файл './Newfiles/2017-01-05/File1_1 min.wav ': Нет такого файла или каталога' – EcologyTom
Взгляните на последнюю часть моего комментария. См. '? Dir.create'. – lmo