Вы можете использовать purrr::pwalk
purrr::pwalk(
list(list_df, names(list_df), names(list_df) != names(list_df)[1]),
function(x, y, z) write.xlsx(x, "test.xlsx", sheetName = y, append = z))
Третий аргумент z
- это запись логического вектора, то есть FALSE
для первого элемента вашего списка и TRUE
для всех другие элементы, и это определяет, добавляем ли мы листы в файл Excel (верно для всех элементов списка, кроме первого).
Обратите внимание, что это основано на функции write.xlsx
из пакета xlsx
. Кажется, что openxlsx::write.xlsx
может напрямую записывать именованный список на несколько листов, см. Ответ @ RonakShah.