Можно запустить приложение RShiny без открытия среды R?

В настоящее время у меня есть блестящее приложение R, чтобы запустить его, я открываю RStudio и выполняю

setwd("C:/Users/Me/Desktop/R/ShinyProject2")
library(shiny)
......
runApp()

От R script, расположенного в моем каталоге.

Я отправляю приложение для ознакомления с коллегами, которые не знают, как использовать R.

Так что мне просто интересно... Есть ли простой способ написать исполняемый файл, который напрямую открывает интерфейс, без необходимости щелчка открыть студию R и выполнить коды?

Ответ 1

RStudio!= R

Существует простой интерфейс командной строки для R, который можно запустить в Windows, запустив R.exe в папке bin вашей установки R.

Там также Rscript.exe, который может запускать выражение или файл script. Например:

C:\Program Files\R\R-2.15.2\bin\RScript -e hist(runif(1000))

будет (с учетом правильных путей) создать файл PDF с гистограммой в нем.

Итак,

  • вашему сотруднику нужна установка R
  • вам нужна эта установка, чтобы все пакеты выполнялись блестящими
  • или вы добавите в свой код строку install.packages() в свой код.
  • вам нужно предоставить им папку с вашим блестящим кодом
  • вы добавляете к ним файл Windows.BAT, чтобы щелкнуть
  • они запускают это, он вызывает Rscript.exe, который запускает блестящий пакет, который вы им дали.

Или попросите его разместить на публичном блестящем сервере реселлеров RStudio, но тогда мы все можем его увидеть.

Ответ 2

Я знаю, что это старая дискуссия, но это может помочь кому-то узнать, что это можно сделать сейчас. Вы можете создать автономное блестящее приложение, которое запускается на компьютерах без необходимости установки R или любой библиотеки. Существует относительно простой способ сделать это (в настоящее время я сделал это только для пользователей Windows, но что-то для MacOS тоже должно быть), следуя этим подробным шагам: http://www.r-bloggers.com/deploying-desktop-apps-with-r/ . Другим вариантом может быть загрузка приложения на сервере Shiny.

Ответ 3

Теперь вы можете использовать пакет 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)

По умолчанию он включает в себя shiny, magrittr и 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

Ответ 4

Я столкнулся с той же проблемой и использовал два следующих решения, которые отлично работали.

Опубликовать приложение на shinyapps.io

Хорошо: приложение доступно в любое время из любого места. Недостаток: всего 25 активных часов в месяц.

  • Перейдите в https://www.shinyapps.io/ и создайте бесплатную учетную запись
  • Настройте rsconnect для связи R с вашей новой учетной записью shinyapps (пошаговые объяснения в документации shinyapps)
  • В Rstudio нажмите "publish" (рядом с кнопкой "Запустить приложение" ).
  • Получите адрес приложения с панели инструментов shinyapps.io и отправьте его своим сотрудникам.

Поделиться приложением в локальной сети

Хорошо: столько активных часов, сколько вам нужно. Недостаток: требуется находиться в одной локальной сети, и приложение должно постоянно работать на компьютере, подключенном к этой сети.

Вам нужно запустить приложение на своем компьютере и поделиться им в локальной сети, изменив команду runapp на:

runApp(host="0.0.0.0",port=5050)

И затем на ваших сотрудников перейдите в http://[your-IP-address]:5050  (см. следующее: Хостинг LAN Блестящие приложения запускаются из командной строки)

Ответ 5

Я знаю, что это действительно старая дискуссия, но недавно я столкнулся с этой проблемой, и после нескольких вариантов я обнаружил, что лучше всего использовать пакет shinyshortcut:

library(shinyShortcut) shinyShortcut(shinyDirectory = getwd(), OS = .Platform$OS.type, gitIgnore = FALSE)