Terdapat pelbagai cara untuk larikan Shiny App. Sebagai rujukan boleh dibaca di laman Shiny. Penggunaan fungsi runApp() dan shinyAppDir() akan diterangkan disini.

Menggunakan runApp()

Satu fail app.R

Untuk menggunakan fungsi runApp(), cara yang senang digunakan ialah dengan menyediakan fail app.R. Fail ini harus mengandungi ui dan server. Contohnya:

  library(shiny)
  ui <- fluidPage()
  server <- function(input, output) {}
  shinyApp(ui = ui, server = server)

Sekiranya menggunakan program RStudio maka butang Run App akan keluar dan boleh digunakan untuk melarikan app. Sekiranya mengunakan program lain contohnya Emacs ESS maka boleh larikan dengan cara :

  library(shiny)
  runApp("app.R")

Pelbagai fail di folder

Sekiranya app mengandungi kod yang panjang dimana ui dan server di letakkan di fail-fail berasingan, fail-fail ini harus diletakkan di folder sendiri bersama dengan fail-fail lain contohnya global.R, data.R atau module.R termasuk folder www. Fungsi shinyApp() tidak diperlukan untuk melarikan app ini. Penggunaan runApp() boleh digunakan dengan menetapkan nama folder dimana fail-fail tersebut diletakkan. Contohnya isi kandungan di folder myApp

  /home/Git/myApp/
  β”œβ”€β”€ data.R
  β”œβ”€β”€ global.R
  β”œβ”€β”€ server.R
  β”œβ”€β”€ ui.R
  └── www
      └── custom.css

Folder www digunakan untuk menyimpan elemen-element lain seperti gambar, javaScript, CSS dan lain-lainnya. Untuk melayarkan app boleh dilakukan pelbagai cara. Antaranya:

  library(shiny)
  runApp("myApp")

Sekiranya Shinyapps dibuat sebagai object.

  app <- shinyApp(ui = ui, server = server)
  runApp(app)

Atau hanya terus melarikan app di console tanpa mengunakan runApp

  app <- shinyApp(ui = ui, server = server)
  app

Menggunakan shinyAppDir()

Melarikan app dengan menetapkan folder sekiranya folder tidak terletak di folder yang sedang digunakan.

Tips lain

Sekiranya ingin dapatkan clientData boleh menggunakan session. Contohnya:

  function(input, output, session) {
    output$txt <- renderPrint({
      session$clientData
    })
  }
shiny 
comments powered by Disqus