Развертывание упакованного приложения-блеска на shinyapps.io - PullRequest
0 голосов
/ 21 ноября 2018

, как описано здесь и здесь , есть несколько возможностей разработать приложение блестящий в виде пакета и разместить его в сети.Распространенным способом является включение файла ui.R и server.R в каталог inst-в пакете и в качестве части пакета для написания функции, которая вызывает runApp () с использованием этих файлов.

Однако, чтобы запустить это упакованное приложение в режиме онлайн, необходимо изменить файловую структуру на сервере или вызвать функцию для запуска приложения, создав другой сценарий.Насколько я знаю, это невозможно на shinyapps.io .

Поскольку я хочу / должен использовать shinyapps.io, мой вопрос : Как мне лучше всего развернуть упакованное приложение на shinyapps.io?Одна возможность - загрузить пакет в CRAN, вручную скопировать файлы ui.R и server.R в новое приложение, включить пакет (чтобы иметь доступ ко всем другим функциям, включенным в пакет, кроме пользовательского интерфейса и сервера).логика), а затем разверните это приложение на shinyapps.io.Но: есть ли другие / лучшие возможности?

1 Ответ

0 голосов
/ 21 ноября 2018

Вы можете попытаться загрузить свой пакет на CRAN и вызвать его в своем глянцевом приложении.Это даст вам всю функциональность вашего пакета и всех остальных, кто может быть заинтересован в вашем пакете.Недостатком этого является то, что вам придется пройти через множество форматирования, документирования, проверки ошибок, перекомпоновки и т. Д. У CRAN есть довольно строгие правила о том, как пакет должен «выглядеть», чтобы принимать и размещать его.По крайней мере, вы должны иметь 0 ошибок и 0 предупреждений при проверке.


Если вы не хотите размещать его в CRAN, вы можете просто включить все функции из пакета в каталог и source эти файлы в Shinyapp.Вы можете сделать это внутри файла global.R или даже внутри файла server.R, но вне функции сервера.

----- ./App_Directory/
---------- global.R
---------- server.R
---------- ui.R
---------- www /
--------------- function1.R
--------------- function2.R
--------------- function_etc.R

Тогда вы быотправьте их, включив эти команды в ваш файл global.R / server.R:

source("www/function1.R")
source("www/function2.R")
source("www/function_etc.R")

Вы также можете просто поместить все функции непосредственно в файл global / server, но их поиск, вероятно, более организован и прощеподдерживать.

----- ./App_Directory/
---------- global.R
---------- server.R
---------- ui.R

...