Jak tworzyć interaktywne aplikacje internetowe za pomocą Shiny w R

Jak Tworzyc Interaktywne Aplikacje Internetowe Za Pomoca Shiny W R



Dzięki frameworkowi R Shiny, pakietowi RStudio, tworzenie dynamicznych aplikacji internetowych za pomocą R jest stosunkowo łatwe. Zaletą Shiny jest to, że umożliwia umieszczenie kodu R w Internecie, dzięki czemu jest on bardziej dostępny dla szerszego grona użytkowników. Dzięki R Shiny możesz tworzyć bardzo zaawansowane raporty i wizualizacje danych, które pozwalają użytkownikowi analizować zbiór danych. Wraz z komponentami Shiny elementy HTML mogą być wykorzystywane do projektowania zawartości programu. Dzisiejszy artykuł przeprowadzi Cię przez proces budowy interaktywnej aplikacji internetowej wykorzystującej pakiet Shiny języka R. W tym celu upewnij się, że masz już zainstalowane „RStudio”.

Zainstaluj pakiet Shiny w RStudio

Zanim przystąpimy do tworzenia interaktywnej aplikacji internetowej w RStudio, powinniśmy mieć już w niej zainstalowany pakiet „Shiny”. W tym celu należy rozwinąć menu „Narzędzia” w RStudio, a następnie opcję „Zainstaluj pakiety”. W otwartym oknie musisz wskazać pakiet, który chcesz zainstalować, czyli „błyszczący” i kliknąć przycisk „Zainstaluj”. RStudio zainstaluje błyszczący pakiet w konsoli RStudio.







Rozpocznij pracę z Shiny w R

Aby rozpocząć pracę z Shiny w R, musisz utworzyć nowy plik R za pomocą menu „Plik” znajdującego się na pierwszym miejscu RStudio. Rozwiń go i użyj opcji „Nowy plik”, a następnie opcji „Skrypt R”. Plik skryptu „bez tytułu” zostanie otwarty w RStudio. Zmień jego nazwę na plik „R” w wybranej lokalizacji.



Teraz załaduj niezbędne pakiety potrzebne do zbudowania interaktywnej aplikacji w R, czyli korzystając z funkcji „biblioteki” R. Instrukcje „if” służą do instalowania pakietów, które nie były wcześniej instalowane. Pakiet Shiny służy do budowy interaktywnego interfejsu dla aplikacji internetowych wraz z niektórymi wizualizacjami graficznymi. Pakiet „dplyr” jest używany głównie w celu ułatwienia manipulacji danymi w R poprzez wykorzystanie kilku przydatnych funkcji.



Na koniec załadowano pakiet „ggplot2”, który stanowi doskonałe źródło wizualizacji danych poprzez tworzenie niestandardowych i wydajnych wykresów.





Jeśli ( ! wymagaj przestrzeni nazw ( 'błyszczący' , cicho = PRAWDA ) ) {

zainstalować. pakiety ( 'błyszczący' )

}

Jeśli ( ! wymagaj przestrzeni nazw ( 'dplyr' , cicho = PRAWDA ) ) {

zainstalować. pakiety ( 'dplyr' )

}

Jeśli ( ! wymagaj przestrzeni nazw ( „ggplot2” , cicho = PRAWDA ) ) {

zainstalować. pakiety ( „ggplot2” )

}

biblioteka ( błyszczący )

biblioteka ( dplyr )

biblioteka ( ggplot2 )

Zbuduj interaktywny system oceniania egzaminów

W ramach tego samouczka stworzymy „system oceniania egzaminów”, w którym uczniowie będą mogli uzyskać oceny uzyskane na podstawie ocen uzyskanych na 100. Dostarczony skrypt to komponent „ui” aplikacji Shiny, który określa projekt i wygląd aplikacji program. Program generuje płynną stronę, elastyczny projekt, który można skalować w celu dostosowania do okna przeglądarki.

„titlePanel” i „sidebarLayout” są dziećmi „fluidPage”. Tytuł programu „Exam Grading System” to wszystko, co jest wyświetlane w „titlePanel”. „sidebarPanel” i „mainPanel” to dwie sekcje, których używa „sidebarLayout” do podziału aplikacji. W „sidebarPanel” znajduje się para wejść: „textAreaInput” o nazwie „score” oraz „actionButton” o nazwie „calculate”.



Dla każdego ucznia można wprowadzić jeden wynik w wierszu za pomocą pola „textAreaInput”. Ocenę oceny można rozpocząć za pomocą przycisku „actionButton”. W „mainPanel” znajduje się para wyników: „tableOutput” o nazwie „Result” plus „plotOutput” o nazwie „ResultGraph”. Zarówno „tableOutput”, jak i „plotOutput” przedstawią wyniki obliczeń w formie wykresu.

interfejs użytkownika <- płynna strona (

tytułPanel ( „System oceniania egzaminów” ) ,
Układ paska bocznego (
Panel boczny (
pole tekstowe ( 'wynik' , „Wprowadź wyniki uczniów (po jednym w wierszu):” , „” ) ,
Przycisk akcji ( 'Oblicz' , „Obliczmy oceny” )
) ,
panel główny (
Dane wyjściowe tabeli ( 'Wynik' ) ,
wykresWyjście ( „Wykres wyników” )
) ) )

Metoda serwerowa ustanawia logikę aplikacji po stronie serwera. Oceny uczniów są początkowo przechowywane w zmiennej reaktywnej o nazwie „dane”. W tym celu przycisk „oblicz” jest monitorowany za pomocą metody „observeEvent” języka R. Po uruchomieniu przycisku kod początkowo konwertuje wartości wprowadzone w polu tekstowym na wartości liczbowe.

Po każdym wyniku następuje podział wiersza za pomocą „\n” w celu wprowadzenia nowego wyniku w następnym wierszu. Metoda umieszcza znaleziony wynik w zmiennej „data”. Jeśli użytkownik nie wprowadził żadnego wyniku, metoda wyświetli komunikat z błędem.

serwer <- funkcjonować ( wejście wyjście ) {

dane <- wartość reaktywna ( ZERO )

obserwuj wydarzenie ( wejście$oblicz, {

wynik <- Jak. numeryczny ( usuń z listy ( podział str ( wynik wejściowy, ' \N ' ) ) )

Jeśli ( długość ( wynik ) > 0 ) {

dane ( wynik )

} w przeciwnym razie {

dane ( ZERO )

pokażModal ( modalne okno dialogowe (

tytuł = 'Błąd' ,

„Błąd: dodaj wartość!” ,

łatweZamknij = PRAWDA

) )

}

} )

Określono dwa wyniki, „output$Result” i „output$ResultGraph”, aby pokazać oceny uczniów i osiągnięte oceny. Metoda dynamiczna renderTable() tworzy tabelę danych zawierającą oceny i oceny uczniów, oznaczoną jako „output$Result”. Metoda renderPlot(), która również jest reaktywna, generuje wykres słupkowy ocen uczniów i w podobny sposób zapisuje go w wynikach wyjściowych „output$ResultGraph”.

Będą zatem poddawane przeglądowi przy każdej aktualizacji danych wejściowych. Wyrażenie if (!is.null(data())) określa, czy odbierane dane mają wartość null. Skrypt instrukcji „if” jest wykonywany, jeśli nie jest ona pusta. Wektor ocen uczniów tworzy „dane” wejściowe. Każdy uczeń otrzymuje ocenę na podstawie uzyskanego wyniku za pomocą metody case_when(). Ramka danych zawierająca oceny uczniów i oceny ze sprawdzianów tworzona jest za pomocą metody data.frame(). Do ramki danych dodawane są następujące kolumny: „Student”, „Score” i „Grade”. Rozkład ocen jest zestawiany w tabeli o nazwie „GradeCount” przy użyciu metody table().

wynik $Wynik <- renderTabela ( {

Jeśli ( ! Jest. zero ( dane ( ) ) ) {

klas <- przypadek_kiedy (

dane ( ) > 80 ~ 'A' ,

dane ( ) > 60 ~ 'B' ,

dane ( ) > 40 ~ 'C' ,

dane ( ) > 30 ~ 'D' ,

PRAWDA ~ 'F'

)

dane. rama ( Student = 1 : długość ( dane ( ) ) , Wynik = dane ( ) , Stopień = klas )

}

} )

wykres wyjściowy$Wynik <- renderPlot ( {

Jeśli ( ! Jest. zero ( dane ( ) ) ) {

klas <- przypadek_kiedy (

dane ( ) > 80 ~ 'A' ,

dane ( ) > 60 ~ 'B' ,

dane ( ) > 40 ~ 'C' ,

dane ( ) > 30 ~ 'D' ,

PRAWDA ~ 'F'

)

Liczba ocen <- tabela ( klas )

Wykres słupkowy tworzony jest przy użyciu biblioteki „ggplot2”. Liczba (całkowita liczba uczniów, którzy uzyskali każdą ocenę) i kolumna Ocena są tworzone w DataFrame. Wykres słupkowy z danymi „Grade” na „osi x” i danymi „Count” na „osi y” jest tworzony przy użyciu metody geom_bar(). Opcja stat = „identity” instruuje ggplot2, aby wykorzystał rzeczywiste dane bez jakiejkolwiek transformacji. Tytuł, etykieta na osi X i etykieta na osi Y są dodawane metodą „laboratorium”. Kolory słupka przypisuje się za pomocą metodyscale_fill_manual(). Niepotrzebne linie siatki i komponenty nakładki są usuwane za pomocą metody topic_minimal(). Metoda ShinyApp(ui, serwer) buduje aplikację.

ggplot ( dane = dane. rama ( Stopień = nazwy ( Liczba ocen ) , Liczyć = Jak. numeryczny ( Liczba ocen ) ) ,
aj ( X = Stopień i = Policz, uzupełnij = Stopień ) ) +
geom_bar ( statystyka = 'tożsamość' ) +
laboratoria ( tytuł = „Rozkład ocen” ,
X = 'Stopień' ,
I = 'Liczyć' ) +
skala_wypełnienia_ręczna ( wartości = C ( 'A' = 'zielony' , 'B' = 'fioletowy' , 'C' = 'różowy' ,
'D' = 'Pomarańczowy' , 'F' = 'czerwony' ) ) +
temat_minimalny ( )
}
} )
}
lśniącaAplikacja ( ui, serwer )

Po uruchomieniu tego kodu otrzymaliśmy interaktywny interfejs, w którym dodaliśmy kilka ocen i kliknęliśmy przycisk „Obliczmy oceny”.

Wyświetlana jest tabela zawierająca wyniki i oceny uczniów, a następnie wykres słupkowy przedstawiający rozkład ocen w różnych kolorach.

Wniosek

W tym przewodniku wyjaśniono znaczenie użycia pakietu Shiny w języku R za pośrednictwem RStudio. Aby uzupełnić nasze wyjaśnienia, zbudowaliśmy interaktywną aplikację internetową do systemu oceniania uczniów w kodzie R, wykorzystując pakiet „Shiny”.