ShinyApps – Share Aplikasi R di ShinyApps dengan mudah agar bisa diakses via web secara online – Share Aplikasi mu di R ShinyApps ketika saya bekerja dengan project yang ditulis menggunakan R maka sesi demo untuk menunjukan progress project perlu dilakukan. Klien menginginkan sebuah aplikasi berbasis GUI di R, tentu hal yang mudah dilakukan yaitu mengubah aplikasi tersebut di RShiny.
Untuk urusan demo project di R sebenarnya cukup mudah koq, kalian bisa upload project mu di https://www.shinyapps.io sehingga bisa dijalankan via web seperti layaknya membuat situs.
Langkah Daftar https://www.shinyapps.io
Contents
Untuk daftar https://www.shinyapps.io kalian bisa menggunakan account gmail atau facebook. Beruntungnya ada versi gratisan lho! Bisa upload 5 aplikasi dan 25 jam aktif. Lumayanlah buat demo kan project ke klien.
Setelah kalian udah register, maka akan mendapatkan sebuah API token untuk melakukan upload yang bisa kalian peroleh di menu berikut
ntar, jangan lupa show saja
rsconnect::setAccountInfo(name='mulkan', token='A122D5F606C8E8109CDBBC2AC9ED3CAA', secret='xxx')
Setting Aplikasi
Langkah dalam melakukan upload ke server tersebut yaitu, kalian harus install package dibawah ini terlebih dahulu
install.packages('rsconnect')
Setting Project RShiny
Biasanya saya develop RShiny jadi 1 yaitu gabung antara UI dan Server karena ukurannya yang kecil, namun demikian bila ukurannya cukup besar dan biar sesuai kaidah umum pembuatan GUi di RShiny sebaiknya kalian pisah saja.
Berikut sebuah aplikasi GUI di R untuk melakukan ploting, saya ambil dari dokumentasi ShinyApps biar mudah
Siapkan sebuah project yang sesuai standar Rshiny yaitu terdiri dari ui.R dan server.UI, misalkan saya punya sebuah project (buat mempermudah saja) berlokasi di E:\RShinnyApp didalamnya ada 2 script yaitu ui.R yang berisi kode berikut
library(shiny) library(ggplot2) dataset <- diamonds fluidPage( titlePanel("Diamonds Explorer"), sidebarPanel( sliderInput('sampleSize', 'Sample Size', min=1, max=nrow(dataset), value=min(1000, nrow(dataset)), step=500, round=0), selectInput('x', 'X', names(dataset)), selectInput('y', 'Y', names(dataset), names(dataset)[[2]]), selectInput('color', 'Color', c('None', names(dataset))), checkboxInput('jitter', 'Jitter'), checkboxInput('smooth', 'Smooth'), selectInput('facet_row', 'Facet Row', c(None='.', names(dataset))), selectInput('facet_col', 'Facet Column', c(None='.', names(dataset))) ), mainPanel( plotOutput('plot') ) )
serta server.R dengan kode sebagai berikut
library(shiny) library(ggplot2) function(input, output) { dataset <- reactive({ diamonds[sample(nrow(diamonds), input$sampleSize),] }) output$plot <- renderPlot({ p <- ggplot(dataset(), aes_string(x=input$x, y=input$y)) + geom_point() if (input$color != 'None') p <- p + aes_string(color=input$color) facets <- paste(input$facet_row, '~', input$facet_col) if (facets != '. ~ .') p <- p + facet_grid(facets) if (input$jitter) p <- p + geom_jitter() if (input$smooth) p <- p + geom_smooth() print(p) }, height=700) }
Setelah semua siap dengan kode diatas buka saja, RStudio jangan lupa setting sessionnya sesuai lokasi diatas, kemudian jalankan kode berikut
library(rsconnect) rsconnect::setAccountInfo(name='mulkan', token='A122D5F606C8E8109CDBBC2AC9ED3CAA', secret='xxx') deployApp()
maka tampilan Console di RStudio seperti berikut yang menandakan sedang dalam proses upload
Preparing to deploy application...DONE Uploading bundle for application: 3901681...DONE Deploying bundle: 4423337 for application: 3901681 ... Waiting for task: 902811791 building: Parsing manifest building: Building image: 5071963 building: Installing system dependencies building: Fetching packages building: Installing packages building: Installing files building: Pushing image: 5071963 deploying: Starting instances unstaging: Stopping old instances Application successfully deployed to https://mulkan.shinyapps.io/deploy/
Contoh yang sudah aktif, kalian bisa lihat sesuai dengan alamat diatas, sebagai contoh https://mulkan.shinyapps.io/rshinnyapp/
Saya sudah mencoba untuk melakukan upload dengan banyak folder dan script resource dengan cara diatas, aman-aman saja karena rsconnect akan secara otomatis melakukan upload depencies nya koq, bila masih belum paham, bisa kalian baca dokumentasi berikut
Contoh Project yang sudah dipublish
Berikut contoh aplikasi dasboard yang dibuat menggunakan RShiny https://mulkan.shinyapps.io/Developing_BIA_2021/