runGadget オプションを使ってShinyアプリの表示方法変更(①ダイアログ②ペイン③別タブ)


はじめに

RStudioサーバー にて Shiny アプリを作成している。shinyApp(ui, server) 実行時にアプリが別ウィンドウで立ち上がる状態を変えたいと思い調査したところ、runGadget オプションにて①ダイアログでの表示、②ペイン(Rstudioサーバー内の領域)での表示、③別タブでの表示ができた。Shiny - runGadget を参考にした。

以下でコードと実行結果を示す。実行するのは bs4Dash のサンプルアプリ。

bs4Dash.R
library(bs4Dash)
ui <- dashboardPage(
  dashboardHeader(title = "Basic dashboard"),
  dashboardSidebar(),
  dashboardBody(
    # Boxes need to be put in a row (or column)
    fluidRow(
      box(plotOutput("plot1", height = 250)),

      box(
        title = "Controls",
        sliderInput("slider", "Number of observations:", 1, 100, 50)
      )
    )
  )
)

server <- function(input, output) {
  set.seed(122)
  histdata <- rnorm(500)

  output$plot1 <- renderPlot({
    data <- histdata[seq_len(input$slider)]
    hist(data)
  })
}

shinyApp(ui, server)

①ダイアログ

サンプルアプリの実行コマンドを以下のように変更。

dialog.R
# shinyApp(ui, server)
runGadget(ui, server, viewer = dialogViewer("Dialog Title", width = 1200, height = 600))

実行結果は以下 GIF のようになる。

②ペイン

サンプルアプリの実行コマンドを以下のように変更。

pane.R
# shinyApp(ui, server)
runGadget(ui, server, viewer = paneViewer(minHeight = 500))

実行結果は以下 GIF のようになる。

③別タブ

サンプルアプリの実行コマンドを以下のように変更。

tab.R
# shinyApp(ui, server)
runGadget(ui, server, viewer = browserViewer(browser = getOption("browser")))

実行結果は以下 GIF のようになる。