R Shiny Tutorial: Semua yang Perlu Anda Ketahui



Tutorial R Shiny ini akan memberi Anda pengetahuan rinci dan komprehensif tentang R Shiny dan cara membuat Aplikasi Web interaktif.

Dengan evolusi teknologi, alat dan kerangka kerja yang lebih baru telah muncul untuk membangun aplikasi web yang menampilkan statistik, peta, dan grafik waktu nyata. Karena fungsi ini memerlukan pemrosesan dan sinkronisasi yang tinggi, bahasa pemrograman digunakan untuk mengurangi waktu buka server. Dalam tutorial R Shiny ini, saya akan menjelaskan cara memanfaatkan R sebaik mungkin pada aplikasi web dinamis.

Kami akan membahas dan memahami topik-topik berikut:





Apa itu R Shiny?

Shiny adalah paket R yang memungkinkan pengguna membuat aplikasi web interaktif. Alat ini membuat aplikasi web setara HTML dari kode Shiny. Kami mengintegrasikan kode HTML dan CSS asli dengan fungsi R Shiny untuk membuat aplikasi rapi. Shiny menggabungkan kekuatan komputasi R dengan interaktivitas web modern.Shiny membuat aplikasi web yang diterapkan di web menggunakan server Anda atau layanan hosting R Shiny.

Fitur R Shiny:

  • Buat aplikasi mudah dengan pengetahuan dasar atau tanpa pengetahuan tentang alat web
  • Integrasikan Shiny dengan alat web asli untuk meningkatkan fleksibilitas dan produktivitas
  • I / O dan fungsi render yang sudah dibuat sebelumnya
  • Rendering yang mudah dari konten aplikasi tanpa banyak memuat ulang
  • Fitur untuk menambahkan output yang dihitung (atau diproses) dari skrip R.
  • Tambahkan laporan dan visualisasi langsung.

Itu membawa kita pada pertanyaan:



Apa perbedaan Shiny dari aplikasi tradisional?

Mari kita ambil contoh aplikasi cuaca, setiap kali pengguna menyegarkan / memuat halaman atau mengubah input apa pun, itu harus memperbarui seluruh halaman atau sebagian halaman menggunakan JS. Ini menambah beban ke sisi server untuk diproses. Shiny memungkinkan pengguna untuk mengisolasi atau merender (atau memuat ulang) elemen dalam aplikasi yang mengurangi beban server. Menggulir halaman mudah dalam aplikasi web tradisional tetapi sulit dengan aplikasi Shiny. Struktur kode memainkan peran utama dalam memahami dan men-debug kode. Fitur ini sangat penting untuk aplikasi mengkilap sehubungan dengan aplikasi lain.

Mari beralih ke topik berikutnya dalam tutorial R Shiny, menginstal paket R Shiny.

Menginstal R Shiny

Menginstal Shiny seperti menginstal paket lain di R. Pergi ke Konsol R. dan jalankan perintah di bawah ini untuk menginstal paket Shiny.



install.packages ('mengkilap')

Instal R Shiny - R tutorial mengkilap - Edureka

Setelah Anda menginstal, muat paket Shiny untuk membuat aplikasi Shiny.

perpustakaan (mengkilap)

Sebelum kita melangkah lebih jauh dalam tutorial R mengkilap ini, mari kita lihat dan pahami struktur aplikasi Shiny.

Struktur aplikasi Shiny

Shiny terdiri dari 3 komponen:

  1. Antarmuka pengguna
  2. Server
  3. ShinyApp

satu.Fungsi Antarmuka Pengguna

Antarmuka pengguna Fungsi (UI) mendefinisikan tata letak dan tampilan aplikasi. Anda dapat menambahkan tag CSS dan HTML di dalam aplikasi untuk membuat aplikasi lebih rapi. Fungsi ini berisi semua masukan dan keluaran yang akan ditampilkan di aplikasi. Setiap elemen (divisi atau tab atau menu) di dalam aplikasi ditentukan menggunakan fungsi. Ini diakses menggunakan id unik, seperti elemen HTML.Mari pelajari lebih lanjut tentang berbagaifungsi yang digunakan dalam aplikasi.

Fungsi Tata Letak Shiny

  • headerPanel ()tambahkan judul ke aplikasi. titlePanel () mendefinisikan subpos dari aplikasi. Lihat gambar di bawah untuk pemahaman yang lebih baik tentang headerPanel dan titlePanel .
  • SidebarLayout ()mendefinisikan tata letak untuk dipegang sidebarPanel dan mainPanel elemen. Tata letak membagi layar aplikasi menjadi panel sidebar dan panel utama. Misalnya, pada gambar di bawah ini, persegi panjang merah adalah mainPanel area dan area persegi panjang hitam secara vertikal sidebarPanel daerah.

cara menerapkan aplikasi java di aws
  • wellPanel ()mendefinisikan wadah yang menampung beberapa objek aplikasi input / output objek dalam kisi yang sama.
  • tabsetPanel ()membuat wadah untuk menahan tab. tabPanel () menambahkan tab ke dalam aplikasi dengan mendefinisikan elemen dan komponen tab. Pada gambar di bawah ini, hitampersegi panjang adalah tabsetPanel objek dan persegi panjang merah adalah tabPanel obyek.
  • navlistPanel ()menyediakan menu samping dengan tautan ke berbagai panel tab yang serupa tabsetPanel () seperti daftar Vertikal di sisi kiri layar. Pada gambar di bawah ini, persegi panjang hitam adalah navlistPanel objek dan persegi panjang merah adalah tabPanel obyek.

Bersama dengan fungsi tata letak Shiny, Anda juga dapat menambahkan CSS sebaris ke setiap widget masukan di aplikasi.Aplikasi Shiny menggabungkan fitur teknologi web bersama dengan fitur dan fungsi R mengkilap untuk memperkaya aplikasi. Gunakan tag HTML dalam aplikasi Shiny menggunakan tag $.

Tata letak Anda sudah siap, Saatnya menambahkan widget ke dalam aplikasi. Shiny menyediakan berbagai elemen input dan output pengguna untuk interaksi pengguna. Mari kita bahas beberapa fungsi input dan output.

Fungsi Input Shiny

Setiap widget input memiliki label, Id, parameter lain seperti pilihan, nilai, dipilih, min, maks, dll.

  • selectInput ()- membuat elemen HTML dropdown.
selectInput ('select', h3 ('Select box'), choices = daftar ('Pilihan 1' = 1, 'Pilihan 2' = 2, 'Pilihan 3' = 3), dipilih = 1)

  • numericInput ()- Area input untuk mengetik angka atau teks.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Masukkan teks...')

  • tombol radio()- buat tombol radio untuk input pengguna.
radioButtons ('radio', h3 ('Radio buttons'), choices = list ('Pilihan 1' = 1, 'Pilihan 2' = 2, 'Pilihan 3' = 3), dipilih = 1)

Fungsi Shiny Output

Shiny menyediakan berbagai fungsi keluaran yang ditampilkan R keluaran seperti plot, gambar, tabel, dll yang tampilan sesuai R obyek.

  • plotOutput ()- Menampilkan objek plot R.
plotOutput'top_batsman ')
  • tableOutput ()- menampilkan keluaran sebagai tabel.
tableOutput'player_table ')

2. Fungsi Server

Server fungsi dmenjelaskan logika sisi server dari aplikasi Shiny. Ini melibatkan pembuatan fungsi dan keluaran yang menggunakan masukan untuk menghasilkan berbagai jenis keluaran. Setiap klien (browser web) memanggil fungsi server saat pertama kali memuat aplikasi Shiny. Setiap keluaran menyimpan nilai hasil dari fungsi render.

Fungsi ini menangkap ekspresi R dan melakukan kalkulasi dan pra-pemrosesan pada ekspresi tersebut. Gunakan fungsi render * yang sesuai dengan output yang Anda tentukan. Kami mengakses widget inputmenggunakan masukan $ [widget-id] . Variabel masukan ini adalah nilai reaktif. Variabel perantara apa pun yang dibuat menggunakan variabel masukan perlu dibuat reaktif menggunakan reaktif ({}) . Akses variabel menggunakan ().

memberikan * Fungsi melakukan komputasi di dalam fungsi server dan menyimpan variabel output. Outputnya perlu disimpan dengan keluaran $ [nama variabel keluaran] . Setiap memberikan * Fungsi mengambil satu argumen yaitu, ekspresi R yang diapit oleh tanda kurung, {}.

3. Fungsi ShinyApp

shinyApp ()fungsi adalah inti dariaplikasi yang memanggil BAWANG dan server berfungsi untuk membuat Aplikasi Shiny.

Gambar di bawah ini menunjukkan garis besar aplikasi Shiny.

Mari beralih ke segmen berikutnya dalam tutorial R Shiny untuk membuat Aplikasi R Shiny yang pertama.

Buat proyek web Shiny

Pergi ke Mengajukan dan Buat Proyek baru di direktori mana pun -> Aplikasi Web Shiny -> [Nama Direktori aplikasi Shiny]. Masukkan nama direktori dan klik baik .

Setiap proyek aplikasi Shiny baru akan berisi contoh histogram untuk memahami dasar-dasar aplikasi mengkilap. Aplikasi histogram berisi penggeser diikuti dengan histogram yang memperbarui keluaran untuk perubahan di penggeser. Di bawah ini adalah keluaran dari aplikasi histogram.

Untuk menjalankan aplikasi Shiny, klik Jalankan Aplikasi di pojok kanan atas panel sumber. Aplikasi Shiny menampilkan widget slider yang mengambil jumlah nampan sebagai input dan menampilkan histogram sesuai dengan input.

python mengubah angka menjadi biner

Sekarang Anda telah memahami struktur dan cara menjalankan aplikasi Shiny. Mari kita lanjutkan untuk membuat Aplikasi Shiny pertama kita.

Buat aplikasi Shiny pertama

Anda dapat membuat proyek baru atau melanjutkan di direktori kerja yang sama. Dalam tutorial R Shiny ini, kita akan membuat aplikasi Shiny sederhana untuk menampilkan Statistik IPL. Dataset yang digunakan dalam aplikasi dapat diunduh sini . Dataset terdiri dari 2 file, deliveries.csv berisi pengiriman skor untuk setiap bola (di atas) batsman, bowler, detail lari dan match.csv file berisi detail pertandingan seperti lokasi pertandingan, lemparan, tempat & detail permainan. Aplikasi di bawah ini membutuhkan pengetahuan dasar tentang dplyr dan untuk memahami tutorial di bawah ini.

Ikuti langkah-langkah di bawah ini untuk membuat aplikasi mengkilap pertama Anda.

Langkah 1 : Buat garis besar aplikasi Shiny.

Hapus kode yang ada kecuali untuk definisi fungsi di aplikasi . R mengajukan.

Langkah 2 : Muat pustaka dan data.

Pada langkah ini, kami memuat paket dan data yang diperlukan. Kemudian, bersihkan dan ubah data yang diekstrak ke dalam format yang diperlukan. Tambahkan kode di bawah ini sebelumnya BAWANG dan server fungsi.

Kode:

perpustakaan (mengkilap) perpustakaan (tidyverse) # Memuat Set Data --------------------------------------- ---------------- deliveries = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) match = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = SALAH) # Membersihkan Set Data --------------------------------------------- --------- nama (kecocokan) [1] = 'match_id' IPL = dplyr :: inner_join (kecocokan, pengiriman)

Penjelasan :

2 baris pertama dimuat rapi dan Berkilau paket. 2 baris berikutnya memuat pengiriman set data dan pencocokan serta menyimpan dalam variabelpengirimandankorek api. 2 baris terakhir memperbarui nama kolom darikorek apidataset untuk melakukan inner join denganpengirimanmeja. Kami menyimpan hasil gabungan diIPLvariabel.

LANGKAH 3 : Buat tata letak aplikasi Shiny .

Seperti yang telah dibahas sebelumnya, file BAWANG fungsi mendefinisikan tampilan aplikasi, widget, dan objek di aplikasi Shiny.Mari kita bahas hal yang sama secara mendetail.

Kode

Bawang<- fluidPage( headerPanel('IPL - Indian Premier League'), tabsetPanel( tabPanel(title = 'Season', mainPanel(width = 12,align = 'center', selectInput('season_year','Select Season',choices=unique(sort(matches$season, decreasing=TRUE)), selected = 2019), submitButton('Go'), tags$h3('Players table'), div(style = 'border:1px black solidwidth:50%',tableOutput('player_table')) )), tabPanel( title = 'Team Wins & Points', mainPanel(width = 12,align = 'center', tags$h3('Team Wins & Points'), div(style = 'float:leftwidth:36%',plotOutput('wins_bar_plot')), div(style = 'float:rightwidth:64%',plotOutput('points_bar_plot')) ) )))

Itu BAWANG fungsi berisi a headerPanel () atau titlePanel () dan diikuti oleh tabsetPanel untuk menentukan banyak tab di aplikasi. tabPanel () mendefinisikan objek untuk setiap tab. Setiap tabPanel () terdiri dari judul dan mainPanel (). mainPanel () membuat wadah dengan lebar 12 yaitu jendela penuh dan menyelaraskan objek input dan output di tengah.

Penjelasan

Aplikasi ini terdiri dari 2 tab: Musim dan Kemenangan & Poin Tim.

Musim tab terdiri dari selectInput ( ) , tombol kirim dan meja. season_year digunakan untuk membaca input dari ladalah nilai. tableOutput () menampilkan keluaran tabel yang dihitung pada fungsi server.Tabel player_table ditampilkan di bawah tombol yang ditentukan dalam fungsi server yang akan dibahas pada langkah berikutnya. Kemenangan & Poin Tim Tab menampilkan kemenangan dan poin tim-bijaksana di grafik batang masing-masing. plotOutput () menampilkan keluaran yang dikembalikan dari render * fungsi. Semua output, fungsi input diapit dalam tag div untuk menambahkan gaya sebaris.

Sekarang kita sudah familiar dengan fungsi ui, mari kita lanjutkan dengan memahami dan menggunakan fungsi server dalam tutorial R Shiny kita.

apa yang ditambahkan di java

Langkah 4: Tambahkan pernyataan fungsi server

Itu server function melibatkan pembuatan fungsi dan outputs yang menggunakan input pengguna untuk menghasilkan berbagai jenis output. Itufungsi server dijelaskan langkah demi langkah di bawah ini.

match_year = reaktif ({match%>% filter (season == input $ season_year)}) playoff = reaktif ({nth (sort (match_year () $ match_id, menurun = TRUE), 4)}) match_played = reaktif ({match_year ()%>% filter (match_id% group_by (team1)%>% summarize (count = n ())}) t2 = reaktif ({match_played ()%>% group_by (team2)%>% meringkas (count = n ( ))}) wl = reaktif ({match_played ()%>% filter (winner! = '')%>% group_by (winner)%>% summarize (no_of_wins = n ())}) wl1 = reaktif ({match_played ( )%>% group_by (pemenang)%>% ringkasan (no_of_wins = n ())}) terikat = reaktif ({match_played ()%>% filter (winner == '')%>% pilih (team1, team2)} ) playertable = reaktif ({data.frame (Teams = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })

Pertandingan filter kode di atas dimainkan sebelum playoff setiap tahun, dan menyimpan hasilnya dalam variabel match_played.player_tabletabel berisi statistik pertandingan tim-bijaksana yaitu bermain, menang, dan poin. Variabelmatch_played,player_table,t1,terikat, dll semuanya menengah nilai reaktif . Variabel-variabel ini perlu diakses menggunakan () seperti yang ditunjukkan pada kode di atas.player_tableditampilkan menggunakan fungsi renderTable. Selanjutnya, buat variabel output untuk menyimpan playertable.

keluaran $ player_table = renderTable ({playertable ()})

Sekarang mari kita buat grafik batang untuk menunjukkan kemenangan dan poin yang dicetak oleh setiap tim di musim ini. Kode di bawah ini menampilkan grafik batang menggunakan ggplot. renderPlot () mengambil objek ggplot dan menyimpan hasilnya dalam variabelwins_bar_plotKode ggplot cukup jelas, ini melibatkan grafik dasar dan fungsi pemetaan untuk mengedit legenda, label, dan plot.

keluaran $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (pemenang, no_of_wins, isi = pemenang)) + geom_bar (stat = 'identitas') + theme_classic () + xlab ('Tim') + ylab ('Jumlah Kemenangan') + tema (axis.text.x = element_text (color = 'white'), legend.position = 'none', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = winner, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) keluaran $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Tim, Poin, isi = Tim)) + geom_bar (stat = 'identitas', ukuran = 3) + theme_classic () + tema (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Tim, (Poin + 1), label = Poin, ukuran = 7))})

Langkah 5: Jalankan aplikasi Shiny.

Klik Jalankan Aplikasi. Jika berhasil dijalankan, aplikasi Shiny Anda akan terlihat seperti di bawah ini. Kesalahan atau peringatan apa punJika terkait dengan aplikasi, ini akan menampilkannya di Konsol R.

Tab1 - Musim

Tab2 - Kemenangan & Poin Tim

Mari kita lihat caranyauntuk mengaturAkun Shinyapps.io untuk menerapkan aplikasi Shiny Anda.

Siapkan Akun Shinyapps.io

Pergi ke Shinyapps.io dan masuk dengan informasi Anda, lalu berikan nama akun unik untuk halaman tersebut dan simpan. Setelah berhasil menyimpan, Anda akan melihat prosedur mendetail untuk menerapkan aplikasi dari Konsol R. Ikuti prosedur di bawah ini untuk mengkonfigurasi akun Anda di Rstudio.

Langkah 1. Pasang rsconnect

install.packages ('rsconnect')

Langkah 2. Otorisasi Akun

Itu rsconnect paket harus diotorisasi ke akun Anda menggunakan token dan rahasia. Untuk melakukan ini, salin seluruh perintah seperti yang ditunjukkan di bawah ini di halaman dasbor Anda di R menghibur. Setelah Anda berhasil memasukkan perintah di R, saya sekarang mengizinkan Anda untuk menerapkan aplikasi ke akun Shinyapps.io Anda.

rsconnect :: setAccountInfo (nama = 'nama akun', token = 'token', rahasia = 'rahasia')

LANGKAH 3. Terapkan Aplikasi

Gunakan kode di bawah ini untuk menerapkan aplikasi Shiny.

library (rsconnect) rsconnect :: deployApp ('path / to / your / app')

Setelah disetel, Anda siap untuk menerapkan aplikasi mengkilap Anda.

Sekarang setelah Anda mempelajari cara membuat dan menjalankan aplikasi Shiny, terapkan aplikasi yang baru saja kita buat ke Shinyapps.io seperti dijelaskan di atas atau klik menerbitkan, yang ada di sudut kanan atas jendela aplikasi Shiny.

saya harapbahwa tutorial R Shiny ini membantu Anda mempelajari cara membuat dan menjalankan aplikasi Shiny. Bersenang-senanglah membuat aplikasi web yang interaktif dan indah menggunakan R Shiny.

Jika Anda ingin belajar Pemrograman R dan membangun karier yang penuh warna di Analisis Data, lihat yang dilengkapi dengan pelatihan langsung yang dipimpin instruktur dan pengalaman proyek kehidupan nyata. Pelatihan ini akan membantu Anda memahami analitik data dan membantu Anda menguasai subjek.