Shinyapps отключается от сервера, возможно, превышен лимит памяти с файлом excel

Я создал shinyapp, который отображает выходные данные симуляции Монте-Карло с 10 000 испытаний. Моделирование всего футбольного сезона с участием 238 команд, отслеживание семи переменных для каждой команды в каждом испытании (16,66+ миллионов точек данных). Данные моделирования сохраняются в файле Excel.

Когда я пытаюсь запустить приложение из shinyapps.io, ui.R загружается нормально, включая небольшую часть листа Excel (названия команд в команде selectInput()). Приложение всегда вылетает перед любой из server.R загрузок (все мои read_excel() команды находятся в самом начале моего server.R. Это, наряду с некоторыми другими исследованиями, которые я провел в других примерах неожиданного сбоя приложений, заставляет меня поверить, что мой Excel файл слишком велик для shiny. У меня каждая переменная хранится на отдельном листе в Excel, с разными командами read_excel() для каждого листа. Мне удалось получить версию приложения, в которой хранятся только 2 из 7 различных переменных отслеживания , чтобы нормально работать при доступе к данным с отдельных вкладок. Когда я попытался получить доступ ко всем данным с одной вкладки, приложение вылетает, как и раньше.

Я пробовал совет со страниц справки shiny относительно изменения дополнительных настроек приложения, экземпляров, рабочих и т. д. Ничего не изменилось. Я проверил свои журналы приложений:

2016-07-19T23:48:17.796234+00:00 shinyapps[115363]: 
2016-07-20T00:04:10.853831+00:00 shinyapps[115363]: Server version: 0.4.4.1986
2016-07-20T00:04:10.853884+00:00 shinyapps[115363]: R version: 3.3.1
2016-07-20T00:04:10.853895+00:00 shinyapps[115363]: shiny version: 0.13.2
2016-07-20T00:04:10.853906+00:00 shinyapps[115363]: rmarkdown version: NA
2016-07-20T00:04:10.853918+00:00 shinyapps[115363]: knitr version: NA
2016-07-20T00:04:10.853948+00:00 shinyapps[115363]: jsonlite version: 1.0
2016-07-20T00:04:10.853992+00:00 shinyapps[115363]: RJSONIO version: NA
2016-07-20T00:04:10.854026+00:00 shinyapps[115363]: htmltools version: 0.3.5
2016-07-20T00:04:11.030246+00:00 shinyapps[115363]: Using jsonlite for JSON processing
2016-07-20T00:04:11.034832+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.034838+00:00 shinyapps[115363]: Starting R with process ID: '50'
2016-07-20T00:04:11.052472+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.052477+00:00 shinyapps[115363]: Listening on http://0.0.0.0:50671
2016-07-20T00:04:11.119620+00:00 shinyapps[115363]: Loading required package: ggplot2
2016-07-20T00:04:11.341254+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.341260+00:00 shinyapps[115363]: Attaching package: ‘plotly’
2016-07-20T00:04:11.341262+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.341981+00:00 shinyapps[115363]: The following object is masked from ‘package:ggplot2’:
2016-07-20T00:04:11.341984+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.341985+00:00 shinyapps[115363]:     last_plot
2016-07-20T00:04:11.341986+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.342754+00:00 shinyapps[115363]: The following object is masked from ‘package:graphics’:
2016-07-20T00:04:11.342755+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.342758+00:00 shinyapps[115363]: 
2016-07-20T00:04:11.342757+00:00 shinyapps[115363]:     layout
2016-07-20T03:20:09.766501+00:00 shinyapps[115363]: Server version: 0.4.4.1986
2016-07-20T03:20:09.766562+00:00 shinyapps[115363]: R version: 3.3.1
2016-07-20T03:20:09.766569+00:00 shinyapps[115363]: shiny version: 0.13.2
2016-07-20T03:20:09.766574+00:00 shinyapps[115363]: rmarkdown version: NA
2016-07-20T03:20:09.766575+00:00 shinyapps[115363]: knitr version: NA
2016-07-20T03:20:09.766575+00:00 shinyapps[115363]: jsonlite version: 1.0
2016-07-20T03:20:09.766603+00:00 shinyapps[115363]: RJSONIO version: NA
2016-07-20T03:20:09.766604+00:00 shinyapps[115363]: htmltools version: 0.3.5
2016-07-20T03:20:09.935430+00:00 shinyapps[115363]: Using jsonlite for JSON processing
2016-07-20T03:20:09.939423+00:00 shinyapps[115363]: 
2016-07-20T03:20:09.939429+00:00 shinyapps[115363]: Starting R with process ID: '17'
2016-07-20T03:20:09.955391+00:00 shinyapps[115363]: 
2016-07-20T03:20:09.955393+00:00 shinyapps[115363]: Listening on http://0.0.0.0:59412
2016-07-20T03:20:10.045463+00:00 shinyapps[115363]: Loading required package: ggplot2
2016-07-20T03:20:10.260363+00:00 shinyapps[115363]: 
2016-07-20T03:20:10.260369+00:00 shinyapps[115363]: Attaching package: ‘plotly’
2016-07-20T03:20:10.260372+00:00 shinyapps[115363]: 
2016-07-20T03:20:10.261097+00:00 shinyapps[115363]: The following object is masked from ‘package:ggplot2’:
2016-07-20T03:20:10.261100+00:00 shinyapps[115363]: 
2016-07-20T03:20:10.261101+00:00 shinyapps[115363]:     last_plot
2016-07-20T03:20:10.261834+00:00 shinyapps[115363]: The following object is masked from ‘package:graphics’:
2016-07-20T03:20:10.261836+00:00 shinyapps[115363]: 
2016-07-20T03:20:10.261839+00:00 shinyapps[115363]: 
2016-07-20T03:20:10.261838+00:00 shinyapps[115363]:     layout
2016-07-20T03:20:10.261102+00:00 shinyapps[115363]: 

Я изменил свой файл Excel, чтобы удалить все формулы и форматирование и сохранить только значения, но приложение по-прежнему дает сбой перед запуском любого кода server.R. Я попытался сохранить файл excel в виде файлов .csv, но размер файла почти такой же, и для полноценной работы потребовалось бы радикальное изменение моего кода, поэтому я не стал заниматься этим дальше.

Я видел некоторые разговоры об использовании Google Sheet для записи данных из приложения. Будет ли чтение моих данных из Google Sheets лучшим способом обойти эту проблему? У кого-нибудь есть другие решения? Является ли чтение моих данных Excel даже моей проблемой?

Ссылка на мое приложение: https://loghan.shinyapps.io/Season_Projections/


person L. Hansen    schedule 20.07.2016    source источник
comment
Обновление: листы Google вряд ли будут работать. Количество уникальных значений для каждой переменной отслеживания (238 команд * 10 000 испытаний = 2,38 миллиона значений) превышает ограничение на число ячеек для одной электронной таблицы Google (2 миллиона). Не знал, что в гугл листах есть ограничение на количество ячеек.   -  person L. Hansen    schedule 21.07.2016
comment
Версия приложения, которая работает, но в приложение загружены только две переменные: ссылка. Данные хранятся на двух отдельных листах. Попытка поместить две переменные данных на один лист привела к той же проблеме. Определенно проблема, связанная со слишком большим количеством данных в Excel.   -  person L. Hansen    schedule 21.07.2016


Ответы (2)


Вы можете попробовать пакет openxlsx в R. Пакет может оказаться полезным. Так как он считывает данные гораздо быстрее. Он использует read.xlsx для чтения файла Excel.

person Bhushan Pant    schedule 21.07.2016

Вы можете использовать файлы .csv вместо файлов .xls. Переходы между двумя форматами легко выполняются в Excel, а R любит гораздо больше файлов .csv. Чтобы прочитать эти файлы .csv, используйте fread в пакете data.table.

person avidalvi    schedule 22.07.2016