Записать список именованных data.frames в файл xlsx - PullRequest
3 голосов
/ 25 октября 2011

Я пытаюсь использовать пакет xlsx для сохранения списка именованных фреймов данных в файл xlsx. Все фреймы данных в списке имеют имена, но было бы неплохо, если бы они работали и с неназванными элементами списка.

Вот функция, которую я написал:

toXLS <- function(myList,myFile) {

    #Initialize output workbook
    require(xlsx)
    wb <- createWorkbook()
    for (name in names(myList)) {
        createSheet(wb, sheetName=name)
    }

    #Write blank workbook to file
    saveWorkbook(wb, myFile)

    #Write output data to saved workbook
    for (name in names(myList)) {
        write.xlsx(myList[[name]], myFile, sheetName=name)
    }
}

myList <- list(a=data.frame(1,2,3),b=data.frame('a','b','c'),d=data.frame('01-01-1900'))
toXLS(myList,paste(getwd(),'/output.xlsx',sep=''))

Все работает нормально, но перезаписывает выходную книгу каждый раз, когда я звоню write.xlsx. Как вставить data.frame в виде листа в рабочую книгу?

Я не женат на пакете xlsx, но, похоже, он обеспечивает хороший интерфейс для файлов Excel с минимальной необходимой настройкой. Я открыт и для других хороших вариантов.

Ответы [ 2 ]

11 голосов
/ 25 октября 2011

Сначала создайте файл Excel:

wb <- createWorkbook()
saveWorkbook(wb, 'output.xlsx')

Затем добавьте каждую книгу:

lapply(names(myList), function(x) write.xlsx(myList[[x]], 'output.xlsx', sheetName=x, append=TRUE))
3 голосов
/ 25 октября 2011

Используйте append = TRUE при вызове write.xlsx.

...