Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从RStudio小工具中打开闪亮的应用程序_R_Shiny_Rstudio - Fatal编程技术网

如何从RStudio小工具中打开闪亮的应用程序

如何从RStudio小工具中打开闪亮的应用程序,r,shiny,rstudio,R,Shiny,Rstudio,我正在开发一个打包了一组应用程序的软件包,我希望有一个允许您根据分类选择应用程序的包。此应用程序是一个,它是一个闪亮应用程序的特殊迷你版 问题在于: 我无法在另一个应用程序中使用runApp,这会导致错误 我无法返回我想启动的应用程序,因为我尝试了,但它什么也没做 在gadget服务器函数中,我有以下代码: observeEvent(input$done,{ theapp <- shinyAppDir("Dir/to/app") stopApp(theapp)

我正在开发一个打包了一组应用程序的软件包,我希望有一个允许您根据分类选择应用程序的包。此应用程序是一个,它是一个闪亮应用程序的特殊迷你版

问题在于:

  • 我无法在另一个应用程序中使用
    runApp
    ,这会导致错误
  • 我无法返回我想启动的应用程序,因为我尝试了,但它什么也没做
在gadget服务器函数中,我有以下代码:

observeEvent(input$done,{
      theapp <- shinyAppDir("Dir/to/app")
      stopApp(theapp)
    })
observeEvent(输入$done{

应用程序您可以通过使用
rstudioapi
包在关闭应用程序时向R控制台发送命令来解决此问题。然后,服务器功能中的代码变为:

observeEvent(input$done,{
      command <- "shinyAppDir('Dir/to/app')"
      rstudioapi::sendToConsole(command)
      stopApp()
    })
observeEvent(输入$done{

命令问题以QA的方式回答,因为我已经为此奋斗了半天,我想把它放在某个地方作为参考。没有更好的地方,只有这样的参考。
library(shiny)
ui2 <- fluidPage(
  title = "The Second App",
  plotOutput("plot")
)
server2 <- function(input, output, session){
  output$plot <- renderPlot(hist(iris$Sepal.Length))
}

library(miniUI)
library(rstudioapi)
theGadget <- function(){
  ui <- miniPage(
    gadgetTitleBar("Get some app"),
    miniContentPanel(
      renderText("Click on Done")
    )
  )
  server <- function(input, output, session){
    observeEvent(input$done,{
      command <- "shinyApp(ui2, server2)"
      rstudioapi::sendToConsole(command)
      stopApp()
    })
  }
  viewer <- dialogViewer("Example")
  runGadget(ui, server, viewer = viewer)
}

theGadget()