Мой код R в настоящее время включает в себя циклический просмотр списка файлов .xlsm
, преобразование данных на каждом листе в function
, а затем вывод файлов в виде набора .xlsx
файлов. Предположим, что мой Filelist
состоит только из 2 файлов, т.е. Filelist = c("aaa.xlsm", "bbb.xlsm")
, мой текущий код, указанный ниже, выведет файлы .xlsx
с именами файлов "aaa.xlsm.xlsx" и "bbb.xlsm.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"? Я понимаю, что могу использовать функцию file.rename
после того, как .xlsx
файлы были выведены с неправильными именами, но я не могу получить правильный синтаксис для этого.
Filename <- list.files(pattern = ".xlsm.xlsx$")
Newname <- sub("^xlsm.xlsx$", "xlsx", Filename)
file.rename(Filename, Newname)