Dengan evolusi teknologi, alat dan kerangka kerja yang lebih baru telah muncul untuk membangun aplikasi web yang memaparkan statistik, peta, dan grafik masa nyata. Oleh kerana fungsi ini memerlukan pemprosesan dan penyegerakan yang tinggi, bahasa pengaturcaraan digunakan untuk mengurangkan masa pemuatan pelayan. Dalam tutorial R Shiny ini, saya akan menerangkan cara memanfaatkan R terbaik dalam aplikasi web dinamik.
Kami akan merangkumi dan memahami topik berikut:
Apa itu R Shiny?
Shiny adalah pakej R yang membolehkan pengguna membina aplikasi web interaktif. Alat ini membuat aplikasi web setaraf HTML dari kod Shiny. Kami mengintegrasikan kod HTML dan CSS asli dengan fungsi R Shiny untuk menjadikan aplikasi dapat dipersembahkan. Shiny menggabungkan kekuatan komputasi R dengan interaktiviti web moden.Shiny membuat aplikasi web yang disebarkan di web menggunakan pelayan anda atau perkhidmatan hosting R Shiny.
Ciri-ciri R Shiny:
- Buat aplikasi mudah dengan pengetahuan asas atau tanpa pengetahuan tentang alat web
- Gabungkan Shiny dengan alat web asli untuk meningkatkan fleksibiliti dan produktiviti
- Fungsi I / O dan render yang dibina
- Penyampaian kandungan aplikasi dengan mudah tanpa banyak tambah nilai
- Ciri untuk menambahkan output yang dihitung (atau diproses) dari skrip R
- Tambahkan laporan langsung dan visualisasi.
Itu membawa kita kepada persoalan:
Bagaimana Shiny berbeza dengan aplikasi tradisional?
Mari kita ambil contoh aplikasi cuaca, setiap kali pengguna memuat / memuat halaman atau mengubah input apa pun, ia harus mengemas kini seluruh halaman atau bagian halaman menggunakan JS. Ini menambahkan beban ke bahagian pelayan untuk diproses. Berkilau membolehkan pengguna mengasingkan atau membuat (atau memuat semula) elemen dalam aplikasi yang mengurangkan beban pelayan. Menelusuri halaman adalah mudah dalam aplikasi web tradisional tetapi sukar dengan aplikasi Berkilau. Struktur kod memainkan peranan utama dalam memahami dan menyahpepijat kod tersebut. Ciri ini sangat penting untuk aplikasi berkilat sehubungan dengan aplikasi lain.
Mari beralih ke topik seterusnya dalam tutorial R Shiny, memasang pakej R Shiny.
Memasang R Shiny
Memasang Shiny adalah seperti memasang pakej lain di R. Pergi ke Konsol R dan jalankan arahan di bawah untuk memasang pakej Shiny.
install.packages ('berkilat')
Setelah anda memasang, muatkan pakej Shiny untuk membuat aplikasi Shiny.
perpustakaan (berkilat)
Sebelum kita melangkah lebih jauh dalam tutorial R berkilau ini, mari kita lihat dan memahami struktur aplikasi Shiny.
Struktur aplikasi Berkilat
Shiny terdiri daripada 3 komponen:
satu.Fungsi Antara Muka Pengguna
Antaramuka pengguna Fungsi (UI) menentukan susun atur dan penampilan aplikasi. Anda boleh menambahkan tag CSS dan HTML dalam aplikasi untuk menjadikan aplikasi lebih rapi. Fungsi ini berisi semua input dan output yang akan ditampilkan dalam aplikasi. Setiap elemen (bahagian atau tab atau menu) di dalam aplikasi ditentukan menggunakan fungsi. Ini diakses menggunakan id unik, seperti elemen HTML.Mari kita pelajari lebih lanjut mengenai pelbagaifungsi yang digunakan dalam aplikasi.
Fungsi Susun Atur Berkilat
pengepala Panel ()
tambah tajuk ke aplikasi. tajukPanel () mentakrifkan sub tajuk tajuk aplikasi. Lihat gambar di bawah untuk pemahaman yang lebih baik pengepalaPanel dan tajukPanel .
SidebarLayout ()
mentakrifkan tata letak untuk menahan sidebarPanel dan mainPanel unsur. Tata letak membahagikan skrin aplikasi ke panel bar sisi dan panel utama. Sebagai contoh, dalam gambar di bawah, segi empat merah adalah mainPanel luas dan luas segi empat tepat secara menegak ialah sidebarPanel kawasan.
telagaPanel ()
mentakrifkan bekas yang menyimpan pelbagai objek input / output aplikasi dalam grid yang sama.tabsetPanel ()
membuat bekas untuk menahan tab. tabPanel () menambah tab ke dalam aplikasi dengan menentukan elemen dan komponen tab. Pada gambar di bawah, berwarna hitamsegi empat tepat ialah tabsetPanel objek dan segiempat merah ialah tabPanel objek.navlistPanel ()
menyediakan menu sampingan dengan pautan ke panel tab yang berbeza yang serupa dengan tabsetPanel () seperti senarai Vertikal di sebelah kiri skrin. Pada gambar di bawah, segi empat tepat hitam adalah navlistPanel objek dan segiempat merah ialah tabPanel objek.
Bersama dengan fungsi susun atur Berkilau, anda juga dapat menambahkan CSS sebaris ke setiap widget input dalam aplikasi.Aplikasi Shiny menggabungkan ciri-ciri teknologi web bersama dengan fungsi dan fungsi R berkilau untuk memperkaya aplikasi. Gunakan tag HTML dalam aplikasi Shiny menggunakan tag $.
Susun atur anda sudah siap, Inilah masanya untuk menambahkan widget ke dalam aplikasi. Shiny menyediakan pelbagai elemen input dan output pengguna untuk interaksi pengguna. Mari kita bincangkan beberapa fungsi input dan output.
Fungsi Input Berkilat
Setiap widget input mempunyai label, Id, parameter lain seperti pilihan, nilai, terpilih, min, maks, dll.
pilihInput ()
- buat elemen HTML dropdown.
selectInput ('select', h3 ('Select box'), options = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), dipilih = 1)
numericInput ()
- kawasan input untuk menaip nombor atau teks.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', nilai = ' Masukkan teks ... ')
jenis transformasi dalam maklumat
Butang radio ()
- buat butang radio untuk input pengguna.
radioButtons ('radio', h3 ('Butang radio'), pilihan = senarai ('Pilihan 1' = 1, 'Pilihan 2' = 2, 'Pilihan 3' = 3), dipilih = 1)
Fungsi Output Berkilat
Shiny menyediakan pelbagai fungsi output yang dipaparkan R output seperti plot, gambar, jadual, dan lain-lain yang menunjukkan yang sesuai R objek.
plotOutput ()
- paparkan objek plot R.
plotOutput'top_batsman ')
-
tableOutput ()
- memaparkan output sebagai jadual.
tableOutput'player_table ')
2. Fungsi Pelayan
Pelayan fungsi dmenggunakan logik sisi pelayan aplikasi Shiny. Ini melibatkan membuat fungsi dan output yang menggunakan input untuk menghasilkan pelbagai jenis output. Setiap pelanggan (penyemak imbas web) memanggil fungsi pelayan ketika pertama kali memuatkan aplikasi Shiny. Setiap output menyimpan nilai kembali dari fungsi render.
Fungsi-fungsi ini menangkap ekspresi R dan melakukan pengiraan dan pra-pemprosesan pada ekspresi tersebut. Gunakan fungsi render * yang sesuai dengan output yang anda tentukan. Kami mengakses widget inputmenggunakan masukan $ [widget-id] . Pemboleh ubah input ini adalah nilai reaktif. Segala pemboleh ubah perantaraan yang dibuat menggunakan pemboleh ubah input perlu dibuat menggunakan reaktif reaktif ({}) . Akses pemboleh ubah menggunakan ().
memberi * fungsi melakukan pengiraan di dalam fungsi pelayan dan menyimpan dalam pemboleh ubah output. Keluaran perlu disimpan dengan output $ [nama pemboleh ubah keluaran] . Masing-masing memberi * fungsi mengambil satu argumen iaitu ungkapan R yang dikelilingi oleh pendakap, {}.
3. Fungsi ShinyApp
shinyApp ()
fungsi adalah nadiaplikasi yang memanggil Bawang dan pelayan berfungsi untuk membuat Aplikasi Berkilat.
Gambar di bawah menunjukkan garis besar aplikasi Shiny.
Mari beralih ke segmen seterusnya dalam tutorial R Shiny untuk membuat Aplikasi R Shiny pertama.
Buat projek web Shiny
Pergi ke Fail dan Buat a Projek baru di mana-mana direktori -> Aplikasi Web Berkilat -> [Nama Direktori aplikasi Berkilau]. Masukkan nama direktori dan klik okey .
Setiap projek aplikasi Shiny baru akan mengandungi contoh histogram untuk memahami asas aplikasi berkilat. Aplikasi histogram mengandungi slaid diikuti dengan histogram yang mengemas kini output untuk perubahan slaid. Berikut adalah output aplikasi histogram.
Untuk menjalankan aplikasi Shiny, klik pada Jalankan Aplikasi butang di sudut kanan atas panel sumber. Aplikasi Shiny memaparkan widget gelangsar yang mengambil bilangan tong sebagai input dan menjadikan histogram mengikut input.
Sekarang anda memahami struktur dan cara menjalankan aplikasi Shiny. Mari teruskan untuk membuat Aplikasi Berkilau pertama kami.
Buat aplikasi Shiny pertama
Anda boleh membuat projek baru atau meneruskan di direktori kerja yang sama. Dalam tutorial R Shiny ini, kami akan membuat aplikasi Shiny sederhana untuk menunjukkan Statistik IPL. Set data yang digunakan dalam aplikasi boleh dimuat turun di sini . Set data terdiri daripada 2 fail, penghantaran.csv mengandungi penyampaian skor untuk setiap bola (dalam over) pemukul, bowler, butiran larian dan padanan.csv fail mengandungi butiran perlawanan seperti lokasi perlawanan, lemparan, tempat & perincian permainan. Aplikasi di bawah memerlukan pengetahuan asas mengenai dplyr dan untuk memahami tutorial di bawah.
apa itu substring dalam java
Ikuti langkah di bawah untuk membuat aplikasi berkilat pertama anda.
Langkah 1 : Buat garis besar aplikasi Shiny.
Kosongkan kod yang ada kecuali untuk definisi fungsi di aplikasi . R fail.
Langkah 2 : Muatkan perpustakaan dan data.
Dalam langkah ini, kami memuatkan pakej dan data yang diperlukan. Kemudian, bersihkan dan ubah data yang diekstrak ke format yang diperlukan. Tambahkan kod di bawah sebelum ini Bawang dan pelayan fungsi.
Kod:
perpustakaan (berkilat) perpustakaan (tidyverse) # Memuatkan Set Data --------------------------------------- ---------------- penghantaran = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) match = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringAsFactors = SALAH) # Membersihkan Dataset --------------------------------------------- --------- nama (perlawanan) [1] = 'match_id' IPL = dplyr :: inner_join (perlawanan, penghantaran)
Penjelasan :
Beban 2 baris pertama kemas dan Berkilat pakej. 2 baris seterusnya memuatkan penghantaran dan padanan set data dan menyimpan dalam pemboleh ubahpenghantaran
danpertandingan
. 2 baris terakhir mengemas kini nama lajurpertandingan
set data untuk melakukan gabungan dalaman denganpenghantaran
meja. Kami menyimpan hasil gabung diIPL
pemboleh ubah.
Langkah 3 : Buat susun atur aplikasi Shiny .
Seperti yang telah dibincangkan sebelumnya, Bawang fungsi menentukan penampilan, widget, dan objek aplikasi dalam aplikasi Shiny.Mari kita bincangkan perkara yang sama secara terperinci.
Kod
bawang besar<- 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')) ) )))
The Bawang fungsi mengandungi a pengepala Panel () atau tajukPanel () dan diikuti oleh tabsetPanel untuk menentukan beberapa tab dalam aplikasi. tabPanel () mentakrifkan objek untuk setiap tab, masing-masing. Masing-masing tabPanel () terdiri daripada tajuk dan mainPanel (). mainPanel () membuat bekas dengan lebar 12 iaitu tetingkap penuh dan menyelaraskan objek input dan output di tengah.
Penjelasan
Aplikasi ini terdiri daripada 2 tab: Musim dan Kemenangan & Mata Pasukan.
Musim tab terdiri daripada pilihInput ( ) , butang hantar dan jadual. season_year digunakan untuk membaca input dari ladalah nilai. tableOutput () memaparkan output jadual yang dikira pada fungsi pelayan.Table player_table dipaparkan di bawah butang yang ditentukan dalam fungsi pelayan yang akan dibincangkan pada langkah seterusnya. Kemenangan & Mata Pasukan tab memaparkan kemenangan dan mata pasukan mengikut carta bar masing-masing. plotOutput () memaparkan output yang dikembalikan dari render * fungsi. Semua output, fungsi input tertutup dalam tag div untuk menambahkan gaya sebaris.
Sekarang kita sudah biasa dengan fungsi ui, mari kita mulai memahami dan menggunakan fungsi pelayan dalam tutorial R Shiny kami.
Langkah 4: Tambahkan pernyataan fungsi pelayan
The pelayan fungsi melibatkan mewujudkan fungsi dan outputs yang menggunakan input pengguna untuk menghasilkan pelbagai jenis output. Thefungsi pelayan dijelaskan langkah demi langkah di bawah.
match_year = reactive ({match%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (match_year () $ match_id, menurun = TRUE), 4)}) match_played = reactive ({match_year ()%>% filter (match_id% group_by (team1)%>% meringkaskan (kiraan = n ())}) t2 = reaktif ({match_played ()%>% group_by (team2)%>% meringkaskan (kiraan = n ( ))}) wl = reaktif ({match_played ()%>% filter (pemenang! = ')%>% group_by (pemenang)%>% meringkaskan (no_of_wins = n ())}) wl1 = reaktif ({match_played ( )%>% group_by (pemenang)%>% meringkaskan (no_of_wins = n ())}) diikat = reaktif ({match_played ()%>% filter (pemenang == ')%>% pilih (team1, team2)} ) playertable = reactive ({data.frame (Team = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Poin = wl () $ no_of_wins * 2) })
Perlawanan penapis kod di atas dimainkan sebelum playoff setiap tahun, dan simpan hasilnya dalam pemboleh ubah match_played.meja pemain
jadual mengandungi statistik perlawanan berpasukan iaitu bermain, menang dan mata. Pemboleh ubahperlawanan_digain
,meja pemain
,t1
,diikat
, dll semuanya pertengahan nilai reaktif . Pemboleh ubah ini perlu diakses menggunakan () seperti yang ditunjukkan dalam kod di atas.meja pemain
dipaparkan menggunakan fungsi renderTable. Seterusnya, buat pemboleh ubah output untuk menyimpan playertable.
keluaran $ player_table = renderTable ({playertable ()})
Sekarang mari buat carta palang untuk menunjukkan kemenangan dan mata yang dijaringkan oleh setiap pasukan pada musim ini. Kod di bawah memaparkan carta palang menggunakan ggplot. renderPlot () mengambil objek ggplot dan menyimpan hasilnya dalam pemboleh ubahmenang_bar_plot
.Kod ggplot cukup jelas, ia melibatkan fungsi grafik dan pemetaan asas 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 = 'identiti') + tema_kelas () + xlab ('Pasukan') + ylab ('Number Of Wins') + tema (axis.text.x = element_text (color = 'white'), legenda.posisi = 'tiada', axis.title = element_text (size = 14), plot.background = element_rect (color = 'white')) + geom_text (aes (x = pemenang, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Pasukan, Mata, isi = Pasukan)) + geom_bar (stat = 'identiti', ukuran = 3) + tema_kelas () + tema (axis.text.x = element_text (color = 'white'), legenda.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Pasukan, (Mata + 1), label = Titik, ukuran = 7))})
Langkah 5: Jalankan aplikasi Shiny.
Klik pada Jalankan Aplikasi. Dengan jalan yang berjaya, aplikasi Shiny anda akan kelihatan seperti di bawah. Sebarang kesalahan atau amaranberkaitan dengan aplikasi, ia akan memaparkannya di R Console.
Tab1 - Musim
apakah keyerror dalam python
Tab2 - Kemenangan & Mata Pasukan
Mari lihat caranyauntuk menubuhkanAkaun Shinyapps.io untuk menggunakan aplikasi Shiny anda.
Sediakan Akaun Shinyapps.io
Pergi ke Shinyapps.io dan log masuk dengan maklumat anda, kemudian berikan nama akaun yang unik untuk halaman tersebut dan simpan. Setelah berjaya menyimpan, anda akan melihat prosedur terperinci untuk menggunakan aplikasi dari R Console. Ikuti prosedur di bawah untuk mengkonfigurasi akaun anda di Rstudio.
Langkah 1. Pasang rsconnect
install.packages ('rsconnect')
Langkah 2. Mengizinkan Akaun
The rsconnect pakej mesti dibenarkan ke akaun anda menggunakan token dan rahsia. Untuk melakukan ini, salin keseluruhan arahan seperti yang ditunjukkan di bawah di halaman papan pemuka anda di R konsol. Setelah anda berjaya memasukkan perintah dalam R, saya sekarang mengizinkan anda menyebarkan aplikasi ke akaun Shinyapps.io anda.
rsconnect :: setAccountInfo (nama = 'nama akaun', token = 'token', rahsia = 'rahsia')
Langkah 3. Terapkan Aplikasi
Gunakan kod di bawah untuk menyebarkan aplikasi Berkilau.
perpustakaan (rsconnect) rsconnect :: deployApp ('path / to / your / app')
Setelah ditetapkan, anda bersedia menggunakan aplikasi berkilat anda.
Sekarang setelah anda belajar membuat dan menjalankan aplikasi Shiny, gunakan aplikasi yang baru kami buat ke Shinyapps.io seperti yang dijelaskan di atas atau klik menerbitkan, yang terdapat di sudut kanan atas tetingkap aplikasi Shiny.
saya harapbahawa tutorial R Shiny ini membantu anda mempelajari cara membuat dan menjalankan aplikasi Shiny. Selamat membuat aplikasi web yang interaktif dan cantik menggunakan R Shiny.
Sekiranya anda ingin belajar Pengaturcaraan R dan membina kerjaya yang berwarna-warni dalam Analisis Data, lihatlah kami yang dilengkapi dengan latihan langsung yang dipimpin oleh instruktur dan pengalaman projek kehidupan sebenar. Latihan ini akan membantu anda memahami analitik data dan membantu anda mencapai penguasaan terhadap subjek ini.