在R中始终重命名多个.txt文件

问题描述 投票:0回答:1

我已将以下格式的文本文件中的lof上传到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摆脱掉“ build”之后的数字

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`

“ building”之后的数字不会超过80,因此我确定上面的选择包括目录中的所有文件。另外,我也不想丢失文件中的任何“窗口”或“屋顶”标签,只需删除标签后面的数字即可。有人有建议吗?

希望这很有道理。如您所见,我是R的新手,我们将不胜感激:)

r
1个回答
0
投票
这很容易。您要使用的包是

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"
© www.soinside.com 2019 - 2024. All rights reserved.