Переименование нескольких файлов .txt последовательно в R - PullRequest
0 голосов
/ 01 апреля 2020

Я загрузил в R кучу текстовых файлов, которые написаны в следующем формате:

building_01.txt
building_01_window_01_roof_01.txt
building_01_window_01_roof_01.txt
building_02_window_02.txt
...

Я хотел бы удалить числа, следующие за каждым словом, чтобы окончательные файлы читались:

building.txt
building_window_roof.txt
building_window_roof.txt
...

Читая предыдущие посты, я пытался использовать file.rename, чтобы избавиться от чисел после «сборки»

files_list <- list.files(pattern="building_[01-80].txt")

file.rename(files_list, paste0("building_",".txt"))

Однако я получаю следующую ошибку:

Error in file.rename(list.files(pattern = "building_[01-80]"), paste0("building_",  : 
'from' and 'to' are of different lengths`

Числа после «сборки» не превышают go за 80, поэтому я уверен, что выбор выше включает все файлы в каталоге. Кроме того, я не хочу терять какие-либо метки «окна» или «крыши» в файле, просто избавляюсь от чисел после метки. У кого-нибудь есть предложение?

Надеюсь, это имеет смысл. Как видите, я новичок в R, и любая помощь будет очень признательна:)

1 Ответ

0 голосов
/ 01 апреля 2020

Это легко. Пакет, который вы хотите использовать: stringr и функция str_remove_all().

library(stringr)
listoffiles = c( "building.txt", 
                 "building_window_roof.txt",
                 "building_window_roof.txt" 
                 )
cleanedfiles = str_remove_all( listoffiles, "\\d+" )
> cleanedfiles
[1] "building.txt"             "building_window_roof.txt" "building_window_roof.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...