Wraz z ewolucją technologii pojawiły się nowsze narzędzia i struktury do tworzenia aplikacji internetowych wyświetlających statystyki, mapy i wykresy w czasie rzeczywistym. Ponieważ te funkcje wymagają intensywnego przetwarzania i synchronizacji, języki programowania są używane w celu skrócenia czasu ładowania serwera. W tym samouczku R Shiny wyjaśnię, jak najlepiej wykorzystać język R w dynamicznych aplikacjach internetowych.
jakie jest 6 sposobów użycia tego słowa kluczowego?
Omówimy i zrozumiemy następujące tematy:
Co to jest R Shiny?
Shiny to pakiet R, który umożliwia użytkownikom tworzenie interaktywnych aplikacji internetowych. To narzędzie tworzy odpowiednik HTML aplikacji internetowej z Shiny code. Integrujemy natywny kod HTML i CSS z funkcjami R Shiny, aby aplikacja była prezentowalna. Shiny łączy moc obliczeniową R z interaktywnością współczesnej sieci.Shiny tworzy aplikacje internetowe, które są wdrażane w sieci przy użyciu Twojego serwera lub usług hostingowych R Shiny.
Cechy R Shiny:
- Twórz łatwe aplikacje z podstawową znajomością narzędzi internetowych lub bez niej
- Zintegruj Shiny z natywnymi narzędziami internetowymi, aby zwiększyć elastyczność i produktywność
- Wbudowane funkcje we / wy i renderowania
- Łatwe renderowanie zawartości aplikacji bez wielokrotnego ładowania
- Funkcja dodawania obliczonych (lub przetworzonych) danych wyjściowych ze skryptów języka R.
- Dodawaj raporty i wizualizacje na żywo.
To prowadzi nas do pytania:
Czym różni się Shiny od tradycyjnych aplikacji?
Weźmy przykład aplikacji pogodowej. Za każdym razem, gdy użytkownik odświeża / ładuje stronę lub zmienia dane wejściowe, powinien zaktualizować całą stronę lub jej część za pomocą JS. To dodaje obciążenie do przetwarzania po stronie serwera. Shiny pozwala użytkownikowi izolować lub renderować (lub przeładowywać) elementy w aplikacji, co zmniejsza obciążenie serwera. Przewijanie stron było łatwe w tradycyjnych aplikacjach internetowych, ale było trudne w przypadku aplikacji Shiny. Struktura kodu odgrywa główną rolę w zrozumieniu i debugowaniu kodu. Ta funkcja ma kluczowe znaczenie dla błyszczących aplikacji w odniesieniu do innych aplikacji.
Przejdźmy do następnego tematu w samouczku R Shiny, dotyczącym instalacji pakietu R Shiny.
Instalowanie R Shiny
Instalowanie Shiny jest jak instalowanie dowolnego innego pakietu w R. Idź do Konsola R i uruchom poniższe polecenie, aby zainstalować pakiet Shiny.
install.packages ('błyszczące')
Po zainstalowaniu załaduj pakiet Shiny, aby utworzyć błyszczące aplikacje.
biblioteka (błyszcząca)
Zanim przejdziemy dalej w tym błyszczącym samouczku języka R, zobaczmy i zrozummy strukturę aplikacji Shiny.
Struktura aplikacji Shiny
Shiny składa się z 3 składników:
jeden.Funkcja interfejsu użytkownika
Interfejs użytkownika (UI) definiuje układ i wygląd aplikacji. Możesz dodać tagi CSS i HTML w aplikacji, aby uczynić aplikację bardziej reprezentacyjną. Funkcja zawiera wszystkie wejścia i wyjścia, które mają być wyświetlane w aplikacji. Każdy element (podział, zakładka lub menu) wewnątrz aplikacji jest definiowany za pomocą funkcji. Dostęp do nich uzyskuje się za pomocą unikalnego identyfikatora, takiego jak elementy HTML.Dowiedzmy się więcej o różnychfunkcje używane w aplikacji.
Błyszczące funkcje układu
headerPanel ()
dodaj nagłówek do aplikacji. titlePanel () definiuje podtytuł aplikacji. Zobacz poniższy obraz, aby lepiej zrozumieć headerPanel i titlePanel .
SidebarLayout ()
określa układ do przechowywania pasek bocznyPanel i panel główny elementy. Układ dzieli ekran aplikacji na panel paska bocznego i panel główny. Na przykład na poniższym obrazku czerwony prostokąt to panel główny obszar i obszar czarnego prostokąta w pionie to pasek bocznyPanel powierzchnia.
wellPanel ()
definiuje kontener, który przechowuje wiele obiektów wejściowych / wyjściowych aplikacji obiektów w tej samej siatce.tabsetPanel ()
tworzy pojemnik na karty. tabPanel () dodaje kartę do aplikacji, definiując elementy i komponenty karty. Na poniższym obrazku czarnyprostokąt jest tabsetPanel obiekt, a czerwony prostokąt to tabPanel obiekt.navlistPanel ()
udostępnia boczne menu z linkami do różnych paneli kart, podobnych do tabsetPanel () jak lista pionowa po lewej stronie ekranu. Na poniższym obrazku czarny prostokąt to navlistPanel obiekt, a czerwony prostokąt to tabPanel obiekt.
Oprócz funkcji Shiny layout możesz również dodać wbudowany CSS do każdego widżetu wejściowego w aplikacji.Aplikacja Shiny zawiera funkcje technologii internetowych oraz błyszczące funkcje i funkcje języka R, które wzbogacają aplikację. Użyj tagów HTML w aplikacji Shiny za pomocą tagi $.
Twój układ jest gotowy. Czas dodać widżety do aplikacji. Shiny zapewnia różne elementy wejściowe i wyjściowe użytkownika do interakcji z użytkownikiem. Omówmy kilka funkcji wejścia i wyjścia.
Błyszczące funkcje wejściowe
Każdy widżet wejściowy ma etykietę, identyfikator, inne parametry, takie jak wybór, wartość, wybrane, min, maks, itp.
selectInput ()
- utwórz rozwijany element HTML.
selectInput ('select', h3 ('Pole wyboru'), options = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)
numericInput ()
- obszar wprowadzania do wpisania liczby lub tekstu.
dateInput ('num', 'Date input', value = '2014-01-01') numericInput ('num', 'Numeric input', value = 1) textInput ('num', 'Numeric input', value = ' Wprowadź tekst...')
przyciski radiowe()
- utwórz przyciski radiowe do wprowadzania danych przez użytkownika.
radioButtons ('radio', h3 ('Radio buttons'), options = list ('Choice 1' = 1, 'Choice 2' = 2, 'Choice 3' = 3), selected = 1)
Funkcje Shiny Output
Shiny zapewnia różne funkcje wyjściowe, które wyświetlają R dane wyjściowe, takie jak wykresy, obrazy, tabele itp., które wyświetlają odpowiednie R obiekt.
plotOutput ()
- wyświetla obiekt wykresu R.
plotOutput'top_batsman ')
-
tableOutput ()
- wyświetla dane wyjściowe w postaci tabeli.
tableOutput'player_table ')
2. Funkcja serwera
serwer funkcja defines logiki po stronie serwera aplikacji Shiny. Obejmuje tworzenie funkcji i wyników, które wykorzystują dane wejściowe do tworzenia różnego rodzaju wyników. Każdy klient (przeglądarka internetowa) wywołuje funkcję serwera podczas pierwszego ładowania aplikacji Shiny. Każde wyjście przechowuje wartość zwracaną przez funkcje renderujące.
Te funkcje przechwytują wyrażenie R i wykonują obliczenia i wstępne przetwarzanie wyrażenia. Użyj funkcji render *, która odpowiada definiowanemu wynikowi. Uzyskujemy dostęp do widżetów wejściowychza pomocą input $ [identyfikator-widżetu] . Te zmienne wejściowe są wartościami reaktywnymi. Wszelkie zmienne pośrednie utworzone za pomocą zmiennych wejściowych należy uaktywnić za pomocą reaktywny ({}) . Uzyskaj dostęp do zmiennych za pomocą ().
renderowanie * funkcje wykonują obliczenia wewnątrz funkcji serwera i przechowują w zmiennych wyjściowych. Wyjście należy zapisać za pomocą output $ [nazwa zmiennej wyjściowej] . Każdy renderowanie * funkcja przyjmuje pojedynczy argument, tj. wyrażenie R otoczone nawiasami klamrowymi, {}.
3. Funkcja ShinyApp
shinyApp ()
funkcja jest sercemaplikacja, która dzwoni CEBULA i serwer funkcje tworzenia błyszczącej aplikacji.
Poniższy obrazek przedstawia zarys aplikacji Shiny.
Przejdźmy do następnego segmentu w samouczku R Shiny, aby stworzyć pierwszą aplikację R Shiny.
Utwórz projekt WWW Shiny
Iść do Plik i utwórz plik Nowy projekt w dowolnym katalogu -> Błyszcząca aplikacja internetowa -> [Nazwa katalogu aplikacji Shiny]. Wprowadź nazwę katalogu i kliknij dobrze .
Każdy nowy projekt aplikacji Shiny będzie zawierał przykładowy histogram, aby zrozumieć podstawy błyszczącej aplikacji. Aplikacja histogram zawiera suwak, po którym następuje histogram, który aktualizuje dane wyjściowe dla zmiany suwaka. Poniżej przedstawiono dane wyjściowe aplikacji histogramu.
Aby uruchomić aplikację Shiny, kliknij Uruchom aplikację w prawym górnym rogu panelu źródła. Aplikacja Shiny wyświetla widżet suwaka, który przyjmuje liczbę pojemników jako dane wejściowe i renderuje histogram zgodnie z danymi wejściowymi.
Teraz, gdy znasz już strukturę i sposób obsługi aplikacji Shiny. Przejdźmy do stworzenia naszej pierwszej Shiny App.
Utwórz pierwszą aplikację Shiny
Możesz utworzyć nowy projekt lub kontynuować w tym samym katalogu roboczym. W tym samouczku R Shiny utworzymy prostą aplikację Shiny do wyświetlania statystyk IPL. Zbiór danych używany w aplikacji można pobrać tutaj . Zbiór danych zawiera 2 pliki, dostawy.csv zawiera dostarczenia punktów za każdą piłkę (powyżej) odbijającego, melonika, szczegółów przebiegów i match.csv plik zawiera szczegóły meczu, takie jak lokalizacja meczu, losowanie, miejsce i szczegóły gry. Poniższa aplikacja wymaga podstawowej znajomości dplyr i aby zrozumieć poniższy samouczek.
Wykonaj poniższe kroki, aby stworzyć swoją pierwszą błyszczącą aplikację.
Krok 1 : Utwórz kontur aplikacji Shiny.
def __init__ w Pythonie
Wyczyść istniejący kod z wyjątkiem definicji funkcji w aplikacja . R plik.
Krok 2 : Załaduj biblioteki i dane.
Na tym etapie ładujemy wymagane pakiety i dane. Następnie wyczyść i przekształć wyodrębnione dane do wymaganego formatu. Dodaj wcześniej poniższy kod CEBULA i serwer funkcjonować.
Kod:
biblioteka (błyszcząca) biblioteka (tidyverse) # Ładowanie zestawu danych --------------------------------------- ---------------- deliveryies = read.csv ('C: UsersCherukuri_SindhuDownloadsdeliveries.csv', stringsAsFactors = FALSE) match = read.csv ('C: UsersCherukuri_SindhuDownloadsmatches.csv', stringsAsFactors = FALSE) # Zestaw danych dotyczących czyszczenia --------------------------------------------- --------- names (dopasowuje) [1] = 'match_id' IPL = dplyr :: inner_join (dopasowuje, dostarcza)
Wyjaśnienie :
Wczytują się pierwsze 2 wiersze tidyverse i Błyszczący pakiet. Następne 2 wiersze ładują dostawy zestawów danych, dopasowują i przechowują w zmiennychdostawy
imecze
. Ostatnie 2 wiersze aktualizują nazwę kolumnymecze
zestaw danych do wykonania sprzężenia wewnętrznego zdostawy
stół. Przechowujemy wynik łączenia w plikuIPL
zmienna.
Krok 3 : Utwórz układ aplikacji Shiny .
Jak omówiono wcześniej, plik CEBULA funkcja definiuje wygląd aplikacji, widżety i obiekty w aplikacji Shiny.Omówmy szczegółowo to samo.
Kod
cebula<- 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')) ) )))
Plik CEBULA funkcja zawiera plik headerPanel () lub titlePanel () a po nim tabsetPanel aby zdefiniować wiele zakładek w aplikacji. tabPanel () definiuje odpowiednio obiekty dla każdej karty. Każdy tabPanel () składa się z tytułu i panel główny(). panel główny() tworzy kontener o szerokości 12, czyli pełne okno i wyrównuje obiekty wejściowe i wyjściowe do środka.
Wyjaśnienie
Aplikacja składa się z 2 zakładek: Pora roku i Zwycięstwa zespołu i punkty.
Pora roku zakładka składa się z selectInput ( ) , przycisk przesyłania i tabelę. sezon_rok służy do odczytywania danych wejściowych z lma wartości. tableOutput () wyświetla dane wyjściowe tabeli obliczone na podstawie funkcji serwera.Tabela player_table jest wyświetlana poniżej przycisku, który jest zdefiniowany w funkcji serwera, która zostanie omówiona w następnym kroku. Zwycięstwa zespołu i punkty Zakładka wyświetla zwycięstwo drużyny i punkty na odpowiednich wykresach słupkowych. plotOutput () wyświetla dane wyjściowe zwrócone z renderowania * Funkcje. Wszystkie funkcje wyjściowe i wejściowe są zawarte w znaczniku DIV w celu dodania stylu wbudowanego.
Teraz, gdy już znamy funkcję interfejsu użytkownika, przejdźmy dalej do zrozumienia i używania funkcji serwera w naszym samouczku R Shiny.
Krok 4: Dodaj instrukcje funkcji serwera
Plik serwer funkcja polega na tworzeniu funkcji i outputs, które używają danych wejściowych użytkownika do tworzenia różnego rodzaju wyników. PlikFunkcja serwera jest wyjaśniona krok po kroku poniżej.
match_year = reactive ({match%>% filter (season == input $ season_year)}) playoff = reactive ({nth (sort (match_year () $ match_id, DECRINGING = TRUE), 4)}) match_played = reactive ({match_year ()%>% filter (match_id% group_by (team1)%>% summarize (count = n ())}) t2 = reactive ({match_played ()%>% group_by (team2)%>% summarize (count = n ( ))}) wl = reactive ({Match_played ()%>% filter (zwycięzca! = '')%>% group_by (zwycięzca)%>% summarize (no_of_wins = n ())}) wl1 = reactive ({Match_played ( )%>% group_by (zwycięzca)%>% summarize (no_of_wins = n ())}) tied = reactive ({match_played ()%>% filter (winner == '')%>% select (team1, team2)} ) playertable = reactive ({data.frame (Teams = t1 () $ team1, Played = t1 () $ count + t2 () $ count, Wins = wl () $ no_of_wins, Points = wl () $ no_of_wins * 2) })
Powyższy kod filtruje mecze rozgrywane każdego roku przed play-offami i zapisuje wynik w zmiennej match_played.player_table
Tabela zawiera statystyki meczów drużynowych, tj. rozegrane, zwycięstwa i punkty. Zmiennematch_played
,player_table
,t1
,związany
itp. są pośrednie wartości reaktywne . Dostęp do tych zmiennych należy uzyskać za pomocą (), jak pokazano w powyższym kodzie.player_table
jest wyświetlany za pomocą funkcji renderTable. Następnie utwórz zmienną wyjściową do przechowywania playertable.
wyjście $ player_table = renderTable ({playertable ()})
Teraz stwórzmy wykresy słupkowe pokazujące zwycięstwa i punkty zdobyte przez każdą drużynę w sezonie. Poniższy kod wyświetla wykresy słupkowe za pomocą ggplot. renderPlot () pobiera obiekt ggplot i zapisuje wynik w zmiennejwins_bar_plot
Kod ggplot jest oczywisty, obejmuje podstawowe funkcje graficzne i mapowania do edycji legendy, etykiet i wykresu.
wyjście $ wins_bar_plot = renderPlot ({ggplot (wl1 () [2: 9,], aes (zwycięzca, no_of_wins, fill = zwycięzca)) + geom_bar (stat = 'identity') + theme_classic () + xlab ('Teams') + ylab ('Number Of Wins') + theme (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 = zwycięzca, (no_of_wins + 0.6), label = no_of_wins, size = 7))}) output $ points_bar_plot = renderPlot ({ggplot (playertable (), aes ( Teams, Points, fill = Teams)) + geom_bar (stat = 'identity', size = 3) + theme_classic () + theme (axis.text.x = element_text (color = 'white'), legend.text = element_text ( size = 14), axis.title = element_text (size = 14)) + geom_text (aes (Teams, (Points + 1), label = Points, size = 7))})
Krok 5: Uruchom aplikację Shiny.
Kliknij Uruchom aplikację. Po udanym biegu Twoja aplikacja Shiny będzie wyglądać jak poniżej. Każdy błąd lub ostrzeżenies związanych z aplikacją, wyświetli je w R Console.
Tab1 - sezon
Tab2 - Zwycięstwa i punkty zespołu
Zobaczmy, jak to zrobićustawićKonto Shinyapps.io do wdrażania aplikacji Shiny.
Skonfiguruj konto Shinyapps.io
Final ostatecznie i sfinalizowanie w java
Iść do Shinyapps.io i zaloguj się za pomocą swoich danych, a następnie nadaj unikalną nazwę konta dla strony i zapisz ją. Po pomyślnym zapisaniu zobaczysz szczegółową procedurę wdrażania aplikacji z konsoli R. Postępuj zgodnie z poniższą procedurą, aby skonfigurować swoje konto w Rstudio.
Krok 1. Zainstaluj rsconnect
install.packages ('rsconnect')
Krok 2. Autoryzuj konto
Plik rsconnect pakiet musi być autoryzowany do Twojego konta za pomocą tokena i klucza. Aby to zrobić, skopiuj całe polecenie, jak pokazano poniżej na stronie pulpitu nawigacyjnego w R konsola. Po pomyślnym wprowadzeniu polecenia w R, teraz upoważniam Cię do wdrażania aplikacji na Twoim koncie Shinyapps.io.
rsconnect :: setAccountInfo (name = 'nazwa konta', token = 'token', secret = 'secret')
Krok 3. Wdróż aplikację
Użyj poniższego kodu, aby wdrożyć aplikacje Shiny.
biblioteka (rsconnect) rsconnect :: deployApp ('ścieżka / do / twojej / aplikacji')
Po ustawieniu możesz rozpocząć wdrażanie błyszczących aplikacji.
Teraz, gdy nauczyłeś się tworzyć i uruchamiać aplikacje Shiny, wdróż aplikację, którą właśnie utworzyliśmy, w Shinyapps.io, jak wyjaśniono powyżej, lub kliknij publikować, który jest obecny w prawym górnym rogu okna aplikacji Shiny.
mam nadziejęże ten samouczek R Shiny pomógł Ci nauczyć się tworzyć i uruchamiać aplikację Shiny. Baw się, tworząc interaktywne i piękne aplikacje internetowe za pomocą R Shiny.
Jeśli chcesz nauczyć się programowania R i zbudować barwną karierę w zakresie analizy danych, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże ci zrozumieć analitykę danych i pomoże ci osiągnąć mistrzostwo w tym temacie.