如何使用 R 重命名文件,使文件扩展名不出现在名称中
How to rename files such that the file extension does not appear within the name using R
我的 R 代码目前涉及遍历 .xlsm
个文件列表,通过 function
转换每个 sheet 中的数据,然后将文件输出为一组 [=14] =] 文件。假设我的 Filelist
仅包含 2 个文件,即 Filelist = c("aaa.xlsm", "bbb.xlsm")
,我的当前代码(如下所述)将输出文件名分别为 "aaa.xlsm.xlsx" 和 "bbb.xlsm.xlsx" 的 .xlsx
文件.
Filelist <- list.files(pattern = ".xlsm$") #extract list of files from folder that end with xlsm
lapply(Filelist, function(i) {
df1 <- read_excel(i, sheet = "Trial1")
df2 <- read_excel(i, sheet = "Trial2")
df3 <- read_excel(i, sheet = "Trial3")
df4 <- read_excel(i, sheet = "Trial4")
write.xlsx(list(df1, df2, df3, df4), file = paste0('Out', i, '.xlsx'),
sheetName = c("df1", "df2", "df3", "df4"))})
如何将文件输出为 "aaa.xlsx" 和 "bbb.xlsx"?我知道在 .xlsx
文件以错误的名称输出后我可以使用函数 file.rename
但我似乎无法获得正确的语法。
Filename <- list.files(pattern = ".xlsm.xlsx$")
Newname <- sub("^xlsm.xlsx$", "xlsx", Filename)
file.rename(Filename, Newname)
您可以使用tools::file_path_sans_ext
并添加扩展名直接生成名称:
paste0(tools::file_path_sans_ext("aaa.xlm"), ".xlsx")
#> [1] "aaa.xlsx"
我的 R 代码目前涉及遍历 .xlsm
个文件列表,通过 function
转换每个 sheet 中的数据,然后将文件输出为一组 [=14] =] 文件。假设我的 Filelist
仅包含 2 个文件,即 Filelist = c("aaa.xlsm", "bbb.xlsm")
,我的当前代码(如下所述)将输出文件名分别为 "aaa.xlsm.xlsx" 和 "bbb.xlsm.xlsx" 的 .xlsx
文件.
Filelist <- list.files(pattern = ".xlsm$") #extract list of files from folder that end with xlsm
lapply(Filelist, function(i) {
df1 <- read_excel(i, sheet = "Trial1")
df2 <- read_excel(i, sheet = "Trial2")
df3 <- read_excel(i, sheet = "Trial3")
df4 <- read_excel(i, sheet = "Trial4")
write.xlsx(list(df1, df2, df3, df4), file = paste0('Out', i, '.xlsx'),
sheetName = c("df1", "df2", "df3", "df4"))})
如何将文件输出为 "aaa.xlsx" 和 "bbb.xlsx"?我知道在 .xlsx
文件以错误的名称输出后我可以使用函数 file.rename
但我似乎无法获得正确的语法。
Filename <- list.files(pattern = ".xlsm.xlsx$")
Newname <- sub("^xlsm.xlsx$", "xlsx", Filename)
file.rename(Filename, Newname)
您可以使用tools::file_path_sans_ext
并添加扩展名直接生成名称:
paste0(tools::file_path_sans_ext("aaa.xlm"), ".xlsx")
#> [1] "aaa.xlsx"