我试图用原始名称的一部分重命名文件夹(约7,000个文件)文件中的所有文件。
初始fip代码是一个4位或5位数字代码,用于标识县,并且对于文件夹中的每个文件都是不同的。原始文件中名称的其余部分是每个文件的state_county_lat_lon。
例如:
原名:
" 5081_Illinois_Jefferson_-88.9255_38.3024_-88.75_38.25.wth"
" 7083_Illinois_Jersey_-90.3424_39.0953_-90.25_39.25.wth"
" 11085_Illinois_Jo_Daviess_-90.196_42.3686_-90.25_42.25.wth"
" 13087_Illinois_Johnson_-88.8788_37.4559_-88.75_37.25.wth"
" 17089_Illinois_Kane_-88.4342_41.9418_-88.25_41.75.wth"
我需要用初始代码(fips)重命名:
" 5081.wth"
" 7083.wth"
" 11085.wth"
" 13087.wth"
" 17089.wth"
我已尝试使用list.files和file.rename函数,但我不知道如何识别其全名的代码名称。某种"通配符"可以工作,但不知道如何正确应用这些,因为它们都有相同的模式,但内容不同。
这是我迄今为止所尝试过的:
setwd("C:/Users/xxx")
Files <- list.files(path = "C:/Users/xxx", pattern = "fips_*.wth" all.files = TRUE)
newName <- paste("fips",".wth", sep = "")
for (x in length(Files)) {
file.rename(nFiles,newName)}
我也试过过&#34; sub&#34;功能如下:
setwd("C:/Users/xxxx")
Files <- list.files(path = "C:/Users/xxxx", all.files = TRUE)
for (x in length(Files)) {
sub("_*", ".wth", Files)}
但在as.character(x)中获取错误: 不能强迫类型&#39;关闭&#39;到#&#39;字符&#39;
的矢量OR
setwd("C:/Users/xxxx")
Files <- list.files(path = "C:/Users/xxxx", all.files = TRUE)
for (x in length(Files)) {
sub("^(\\d+)_.*", "\\1.wth", file)}
哪个运行没有错误但对文件中的名称没有任何作用。
我可以使用任何帮助。 感谢
答案 0 :(得分:1)
这是我的例子。
准备使用的数据;
dir.create("test_dir")
data_sets <- c("5081_Illinois_Jefferson_-88.9255_38.3024_-88.75_38.25.wth",
"7083_Illinois_Jersey_-90.3424_39.0953_-90.25_39.25.wth",
"11085_Illinois_Jo_Daviess_-90.196_42.3686_-90.25_42.25.wth",
"13087_Illinois_Johnson_-88.8788_37.4559_-88.75_37.25.wth",
"17089_Illinois_Kane_-88.4342_41.9418_-88.25_41.75.wth")
setwd("test_dir")
file.create(data_sets)
重命名文件;
Files <- list.files(all.files = TRUE, pattern = ".wth")
newName <- sub("^(\\d+)_.*", "\\1.wth", Files)
file.rename(Files, newName)