R重命名文件保留部分原始名称
R rename files keeping part of original name
我正在尝试重命名一个文件夹(大约 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函数,但我不知道如何从他的全名中识别代号。某种 "wildcard" 可以工作,但不知道如何正确应用它们,因为它们都有相同的模式但内容不同。
这是我迄今为止尝试过的方法:
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)}
我还尝试使用 "sub" 函数,如下所示:
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) 中出现错误:
无法将类型 'closure' 强制转换为类型 'character'
的向量
或
setwd("C:/Users/xxxx")
Files <- list.files(path = "C:/Users/xxxx", all.files = TRUE)
for (x in length(Files)) {
sub("^(\d+)_.*", "\1.wth", file)}
它运行没有错误,但对文件中的名称没有任何影响。
我需要任何帮助。
谢谢
这是我的例子。
准备使用数据;
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)
我正在尝试重命名一个文件夹(大约 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函数,但我不知道如何从他的全名中识别代号。某种 "wildcard" 可以工作,但不知道如何正确应用它们,因为它们都有相同的模式但内容不同。
这是我迄今为止尝试过的方法:
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)}
我还尝试使用 "sub" 函数,如下所示:
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) 中出现错误: 无法将类型 'closure' 强制转换为类型 'character'
的向量或
setwd("C:/Users/xxxx")
Files <- list.files(path = "C:/Users/xxxx", all.files = TRUE)
for (x in length(Files)) {
sub("^(\d+)_.*", "\1.wth", file)}
它运行没有错误,但对文件中的名称没有任何影响。
我需要任何帮助。 谢谢
这是我的例子。
准备使用数据;
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)