Можно запустить приложение RShiny без открытия среды R?
В настоящее время у меня есть блестящее приложение R, чтобы запустить его, я открываю RStudio и запускаю
setwd("C:/Users/Me/Desktop/R/ShinyProject2")
library(shiny)
......
runApp()
Из сценария R, расположенного в моем каталоге.
Я отправляю приложение для ознакомления коллегам, которые не знают, как использовать R.
Так что мне просто интересно... Есть ли простой способ написать исполняемый файл, который напрямую открывает интерфейс без необходимости щелкать по открытой R studio и выполнять коды?
8 ответов
RStudio!= R
Существует простой интерфейс командной строки для R, который вы можете запустить в Windows, запустив R.exe в папке bin вашей установки R.
Есть также Rscript.exe, который может запустить выражение или файл сценария. Например:
C:\Program Files\R\R-2.15.2\bin\RScript -e hist(runif(1000))
создаст (с учетом правильных путей) файл PDF с гистограммой.
Так,
- вашему коллеге нужна установка R
- вам нужна эта установка, чтобы все пакеты работали блестяще
- или вы добавляете несколько строк install.packages() в ваш код
- вам нужно дать им папку с вашим блестящим кодом
- Вы добавляете Windows .BAT-файл, чтобы они нажимали
- они запускают его, он вызывает Rscript.exe, который запускает блестящий пакет, который вы им дали
Или разместите его на публичном сервере RStudio, но тогда мы все сможем это увидеть.
Я знаю, что это старая дискуссия, но она может помочь кому-то, зная, что это можно сделать сейчас. Вы можете создать отдельное блестящее приложение, которое будет работать на компьютерах БЕЗ необходимости устанавливать R или какую-либо библиотеку. Есть относительно простой способ сделать это (в настоящее время я сделал это только для пользователей Windows, но кое-что для MacOS тоже должно быть), выполнив следующие подробные шаги: http://www.r-bloggers.com/deploying-desktop-apps-with-r/.Другой опцией может быть загрузка приложения на сервер Shiny.
Теперь вы можете использовать пакет RInno для этого типа вещей. Чтобы получить настройки:
install.packages("RInno")
require(RInno)
RInno::install_inno()
Тогда вам просто нужно вызвать две функции для настройки среды установки:
create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()
Если вы хотите включить R, добавьте include_R = TRUE
в create_app
:
create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
По умолчанию в него включены Блестящие, Магриттр и jsonlite, поэтому, если вы используете другие пакеты, такие как ggplot2 или plotly, просто добавьте их в pkgs
аргумент. Вы также можете включить пакеты GitHub в remotes
аргумент:
create_app(
app_name = "myapp",
app_dir = "path/to/myapp"
pkgs = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"),
remotes = c("talgalili/installr", "daattali/shinyjs"))
Если вы заинтересованы в других функциях, проверьте FI Labs - RInno
Я столкнулся с той же проблемой и использовал два следующих решения, которые оба работали нормально.
Опубликовать приложение на shinyapps.io
Хорошо: приложение доступно в любое время из любого места. Недостаток: всего 25 активных часов в месяц.
- Перейдите на https://www.shinyapps.io/ и создайте бесплатный аккаунт.
- Настройте rsconnect для связи R с вашей новой учетной записью shinyapps (пошаговые пояснения в документации по shinyapps)
- В Rstudio нажмите "Опубликовать" (рядом с кнопкой запуска приложения)
- Получите адрес приложения на информационной панели shinyapps.io и отправьте его своим коллегам.
Поделиться приложением в локальной сети
Хорошо: столько активных часов, сколько вам нужно. Недостаток: требуется подключение к одной локальной сети, и приложение должно постоянно работать на компьютере, подключенном к этой сети.
Вам нужно запустить приложение на своем компьютере и поделиться им в локальной сети, изменив команду runapp на:
runApp(host="0.0.0.0",port=5050)
А затем на ваших коллег перейдите по адресу http://[ваш-IP-адрес]: 5050 (см. Это: Хостинг LAN Блестящие приложения запускаются из командной строки)
Теперь есть новый способ создания автономного приложения Shiny с помощью "Electron" и "Photon". Смотрите следующие ссылки для пакетов / плагинов и т. Д.
Ниже приведено быстрое исправление. перейдите в каталог проекта в командной строке,
cd
. тогда
R -e "shiny::runApp(port=8000,host = getOption('shiny.host', '10.10.10.10'))"
теперь URL
10.10.10.10:8000
будет активен.
Чтобы URL оставался активным даже после выхода из системы,
nohup
может быть использован. Очевидно, это не та настройка для производственной среды.
nohup R -e "shiny::runApp(port=8000,host = getOption('shiny.host', '10.10.10.10'))" &
Я знаю, что это действительно старое обсуждение, но я недавно столкнулся с этой проблемой и, попробовав несколько вариантов, обнаружил, что использование пакета shinyshortcut является лучшим:
library(shinyShortcut) shinyShortcut(shinyDirectory = getwd(), OS = .Platform$OS.type, gitIgnore = FALSE)
Решение, предложенное Spacedman, у меня сработало. Далее я хотел бы привести несколько практических примеров того, как это сделать.
Шаг 1. Предполагая, что ваши коллеги не знают R и RStudio, они все равно нуждаются в R, установленном на их ПК. Им не обязательно нужен RStudio.
Шаг 2. Им нужна блестящая библиотека, все библиотеки в вашем блестящем приложении установлены. Но предположим, что они не знают, как их установить.
Они должны один раз запустить следующий код R (с некоторыми примерами библиотек):
# collect here all the libraries used by your shiny app
install.packages(c('shiny', 'ggplot2', 'magrittr'), repos='http://cran.us.r-project.org')
Если у них нет прав на установку или они хотят установить эти дополнительные библиотеки в другом месте, укажите, где они должны быть установлены:
install.packages(c('shiny', 'ggplot2', 'magrittr'), 'E:/some_path/rlib', repos='http://cran.us.r-project.org')
Будучи очень ленивыми, даже не используя R, они могут вызвать командный файл. Вы можете встроить эти строки R в код с именем «installer.R» и вызвать его из командного файла с именем «installer.bat», содержащего следующее:
set RSCRIPT=C:\Programme\R\R-4.1.0\bin\Rscript.exe
set SPATH=C:\Documents\R_codes
call "%RSCRIPT%" "%SPATH%\installer.R"
Предполагается, что их текущая версия - R-4.1.0, а переменная указывает расположение "installer.R"
Теперь мы (почти) готовы начать сиять.
Шаг 3. Обычно, когда вы запускаете блестящее приложение из R-Studio, вы включаете команду
library(shiny)
в вашем блестящем коде и нажмите кнопку с пиктограммой «Запустить приложение» в R-Studio. Но без R-Studio вам нужно загрузить shiny, а затем запустить приложение с помощью командной строки. Для меня это сработало с использованием двух кодов R. Первый, назовем его "loader.R", содержащий:
library(shiny)
runApp('E:/path_to_your_app/myApp.R', launch.browser=TRUE)
И второе - ваше приложение «myApp.R»:
library(shiny) # you can uncomment this because already in loader.R but leaving it does not harm
ui <- ...
server <- ...
shinyApp(ui = ui, server = server)
Опция
launch.browser=TRUE
откроет приложение в браузере. По умолчанию shiny запускается с опцией «окно» внутри R-Studio, что без R-Studio работать не будет.
Предположим, вы установили необходимые библиотеки по пути E: / some_path / rlib. Затем вы должны указать его в коде loader.R с помощью
.libPaths
:
.libPaths("E:/some_path/rlib")
library(shiny)
runApp('E:/path_to_your_app/myApp.R', launch.browser=TRUE)
Шаг 4. Создайте командный файл под названием «call_siny_app.bat» для вызова вашего блестящего приложения. Это будет содержать:
set RSCRIPT=C:\Programme\R\R-4.1.0\bin\Rscript.exe
set SPATH=E:\path_to_your_app
call "%RSCRIPT%" "%SPATH%\loader.R"
Код вызывает "loader.R" (
SPATH
должен указать правильный путь), который затем вызывает myApp.R.
Вы выполняете шаги с 1 по 4, и вашим коллегам нужно только запустить call_siny_app.bat.