ОсновнаяРецепты

Выгрузить большой Dataframe в Excel

Posted

Появилась задача выгрузить очень большой (около 300 000 строк) датафрейм в Excel.
Рабочий компьютер — такой рабочий. Windows 7 32-bit, 2GB оперативки.

В общем — известными пакетами (excel.link, WriteXLS, XLConnect, xlsx, openxlsx) никак не получалось. Почти во всех пакетах возникала проблема переполнения памяти Java (Java heap). openxlslx не использует Java (использует rcpp), но и в нем появлялась ошибка что памяти не хватает скорее всего.

Никакие описанные на Stackoverflow решения не помогали — все одно и то же — вылетало сохранение с ошибкой.

Попытки выводить по частям все равно не помогало. Но какой то части в начале первой четверти данных — все равно вылетало. Но нашлось решение!
И как всегда с R — в одну строку.

Это пакет rio.


library(rio)
export(df, "result.xlsx")

Выгрузить большой Dataframe в Excel: 8 комментариев

  1. Установка rio на R 3.2.1 под Win7 дает ошибку:
    ERROR: dependency ‘openxlsx’ is not available for package ‘rio’
    * removing ‘H:/РњРѕРё документы/R/win-library/3.2/rio’
    Warning in install.packages :
    running command ‘»C:/PROGRA~1/R/R-32~1.1/bin/x64/R» CMD INSTALL -l «H:\РњРѕРё документы\R\win-library\3.2» C:\Users\AHA\AppData\Local\Temp\RtmpkbtE2r/downloaded_packages/rio_0.4.16.tar.gz’ had status 1
    Warning in install.packages :
    installation of package ‘rio’ had non-zero exit status

    The downloaded source packages are in
    ‘C:\Users\AHA\AppData\Local\Temp\RtmpkbtE2r\downloaded_packages’

      1. install.packages(«openxlsx»)
        Installing package into ‘H:/РњРѕРё документы/R/win-library/3.2’
        (as ‘lib’ is unspecified)
        Warning in install.packages :
        package ‘openxlsx’ is not available (for R version 3.2.1)

        require(devtools)
        Загрузка требуемого пакета: devtools
        Warning message:
        пакет ‘devtools’ был собран под R версии 3.2.5
        install_github(«awalker89/openxlsx»)
        Error in curl::curl_fetch_disk(url, x$path, handle = handle) :
        Couldn’t connect to server

        1. Извините, тогда помочь не смогу. Как то обычно считал, что если пакет из CRAN — то проблем с его установкой быть не может. Поэтому таких проблем и не встречал, соответственно подсказать нечего.

  2. Error in git2r::fetch(gitrepo, name = «github», credentials = credentials) :
    Error in ‘git2r_remote_fetch’: failed to send request: Время ожидания операции истекло

  3. Что то мне не нравятся вот такие строки в ответе:
    H:/Мои документы/R/win-library/3.2

    Такое ощущение, что какая-то часть R установлена в каталог с русским названием. Такая ситуация, к сожалению, крайне не рекомендуется…

    Остальные пакеты-то нормально устанавливаются ? Или проблемы через раз возникают ?

Добавить комментарий