импортировать несколько файлов из папки и добавить защищенные паролем данные

Основываясь на ответе @Gregory Demin, я импортировал защищенный паролем файл xlsx, используя приведенный ниже код.

filename = "Data - x.xlsx"
xl.workbook.open(filename, password = "******")
new_path = paste0(tempdir(), "\\", filename)
xl()[["Activeworkbook"]]$saveas(new_path, AccessMode=xl.constants$xlExclusive)
#xl()[["Activesheet"]]$Unprotect(password = "******)
df= xl[b11:dz46]
xl.workbook.close()
unlink(new_path)
names(df) <- df[1,]
df <- df[-1,]###Changing the first row as header

Это работает отлично для меня. Однако проблема в том, что у меня 100 файлов в папке, и у каждого из них свой пароль. Поэтому мне нужно повторять это снова и снова. Есть ли способ, которым я могу сделать это один раз. Кроме того, я хочу, наконец, добавить все данные в 1 файл с именем файла в отдельном столбце.


person ssan    schedule 03.06.2020    source источник


Ответы (1)


Создайте фрейм данных со столбцом для файла и соответствующим паролем. Измените свой код так, чтобы он был функцией и зацикливался на фрейме данных, который вы создали, используя строки в качестве аргументов.

#useful functions
list.files()
person mrcassowary    schedule 03.06.2020
comment
На самом деле у меня есть отдельный фрейм данных (т. е. pwd_df) с двумя столбцами file.name и паролем для каждого файла. Но не уверен, как зациклить его здесь, чтобы автоматически получать пароль для каждого файла. - person ssan; 03.06.2020
comment
Помимо того, что кто-то запрограммирует его для вас, вам нужно прочитать некоторую документацию по языку программирования R. R_inferno - person mrcassowary; 04.06.2020
comment
Спасибо за справочный документ. На основе ввода я каким-то образом построил цикл с динамическим паролем и успешно получил желаемый результат. Я очень ценю ваши усилия по ответу. - person ssan; 04.06.2020