Spacedman提出的解决方案对我很有用。接下来,我想给出一些实际的例子。
步骤1。
假设你的同事不知道R和RStudio,他们仍然需要在他们的电脑上安装R。他们不一定需要RStudio。
步骤2。
他们需要安装你的shiny应用程序中的所有库。但是假设他们不知道如何安装它们。
他们必须运行以下R代码一次(带有一些示例库):
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,变量SPATH
指定了"installer.R"的位置。
现在,我们(几乎)准备好开始使用shiny了。
第三步。
通常情况下,当您从R-Studio运行shiny应用程序时,您会在shiny代码中包含命令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内部使用"window"选项运行,而没有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)
第四步。
创建一个名为“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即可。