Integracja aplikacji ShinyLive z witryną pkgdown na stronach GitHub

Integracja aplikacji ShinyLive z witryną pkgdown na stronach GitHub
Integracja aplikacji ShinyLive z witryną pkgdown na stronach GitHub

Zwiększanie interaktywności dla osób niekodujących dzięki ShinyLive

Hostowanie zestawów danych i funkcji pomocniczych na stronach GitHub to doskonały sposób na zapewnienie dostępności zasobów. Dla programistów pracujących z R integracja interaktywności może jeszcze bardziej zwiększyć zaangażowanie użytkowników, szczególnie w przypadku osób niebędących programistami eksplorujących Twoje dane. ShinyLive oferuje praktyczne rozwiązanie umożliwiające osadzenie takiej interaktywności bezpośrednio w witrynie pkgdown.

Pomimo dostępności zasobów na temat włączania aplikacji Shiny do pakietów R lub stron GitHub, nadal istnieje luka w wiedzy na temat skutecznego łączenia ShinyLive ze stronami pkgdown. Jako osoba utrzymująca małe pakiety R ze zbiorami danych i funkcjami pomocniczymi prawdopodobnie chcesz, aby eksploracja danych była intuicyjna i przyjazna dla użytkownika. ShinyLive może wypełnić tę lukę.

Włączenie aplikacji Shiny do sekcji „Artykuły” witryny pkgdown zapewnia usprawniony sposób dostarczania interaktywnych funkcji bez przeciążania dokumentacji pakietu R. Ta metoda gwarantuje, że nawet użytkownicy niezaznajomieni z kodowaniem będą mogli łatwo podzielić i wizualizować dane. Jest to korzystne zarówno dla programistów, jak i użytkowników! 🚀

Wyobraźmy sobie na przykład zbiór danych dotyczących zdrowia, w którym użytkownicy mogą filtrować dane dotyczące populacji według danych demograficznych. Korzystając z ShinyLive, możesz zbudować i wdrożyć tę aplikację na GitHub Pages, udostępniając dane w dynamiczny sposób. W tym artykule opisano krok po kroku, jak osiągnąć ten cel przy użyciu istniejącej konfiguracji aplikacji. 🛠️

Rozkaz Przykład użycia
selectInput Używany w Shiny UI do tworzenia menu rozwijanego umożliwiającego wybór opcji. Przykład: wybierzInput("var", "Wybierz zmienną:", wybory = nazwy(mtcars)). Umożliwia to dynamiczne wprowadzanie danych przez użytkownika w celu wyboru zmiennej.
sliderInput Tworzy widżet wprowadzania suwaka w Shiny, aby umożliwić użytkownikom wybór zakresu wartości. Przykład: sliderInput("zakres", "Zakres filtra:", min = 0, max = 100, wartość = c(25, 75)). Niezbędne do interaktywnego filtrowania.
renderPlot Używany w logice serwera Shiny do dynamicznego generowania wykresów na podstawie danych wejściowych użytkownika. Przykład: wykres wyjściowy
filter A function from dplyr to subset data based on conditions. Example: filter(get(input$var) >Funkcja z dplyr do podzbioru danych w oparciu o warunki. Przykład: filter(get(input$var) >= input$range[1]). Przydatne do stosowania filtrów zdefiniowanych przez użytkownika do zestawów danych.
aes_string Używany w ggplot2 do programowego ustawiania estetyki, takiej jak osie X i Y. Przykład: aes_string(x = input$var). Idealny do dynamicznego generowania wykresów.
geom_histogram Warstwa ggplot2 do tworzenia wizualizacji histogramów. Przykład: geom_histogram(bins = 10, fill = „niebieski”, kolor = „biały”). Przydatne do wizualizacji dystrybucji w aplikacji.
uses Składnia YAML w akcjach GitHub w celu określenia akcji wielokrotnego użytku. Przykład: używa: akcje/checkout@v3. Zapewnia bezproblemową integrację z predefiniowanymi przepływami pracy.
shinylive.js Biblioteka JavaScript do uruchamiania aplikacji Shiny w przeglądarce. Przykład: . Umożliwia osadzanie aplikacji Shiny na statycznych stronach HTML.
Shinylive.App Inicjuje i uruchamia aplikację ShinyLive w określonym kontenerze HTML. Przykład: const app = new Shinylive.App("#shiny-app");. Zapewnia funkcjonalność aplikacji opartej na przeglądarce.
sliderInput Tworzy suwak wejściowy umożliwiający wybór zakresu numerycznego. Przykład: sliderInput("zakres", "Zakres filtra:", min = 0, max = 100, wartość = c(25, 75)). Dodaje filtrowanie zakresu dynamicznego dla użytkowników.

Tworzenie interaktywnych narzędzi do eksploracji danych za pomocą Shinylive

Pierwszy skrypt, zbudowany przy użyciu R i Shiny, skupia się na stworzeniu dynamicznego interfejsu, który pozwala użytkownikom na interaktywne eksplorowanie zbiorów danych. The wybierz Wejście Polecenie jest niezbędne, aby umożliwić użytkownikom dynamiczny wybór zmiennych z menu rozwijanego, dostosowując aplikację do ich potrzeb. W połączeniu z suwakWejście, użytkownicy mogą jeszcze bardziej zawęzić eksplorację, wybierając określony zakres wartości do filtrowania danych. Na przykład w zbiorze danych takim jak mtcars, użytkownicy mogą wybrać „mpg” jako zmienną i użyć suwaka do wyodrębnienia samochodów o przebiegu od 20 do 30. Ta kombinacja zapewnia przyjazny dla użytkownika i intuicyjny interfejs. 🚀

Logika po stronie serwera uzupełnia interfejs użytkownika, generując reaktywne dane wyjściowe na podstawie danych wejściowych użytkownika. Tutaj, renderPlot funkcja jest kluczowa — przetwarza przefiltrowany zbiór danych i na bieżąco generuje dynamiczne wizualizacje. Integracja dplyr filtr funkcja umożliwia płynne podzbiór zbioru danych, podczas gdy ggplot2 geom_histogram zapewnia atrakcyjną wizualnie i pouczającą fabułę. Wyobraź sobie zbiór danych dotyczących zdrowia, w którym użytkownik może filtrować przedziały wiekowe i natychmiast wyświetlać rozkład wskaźników zdrowotnych — ten skrypt umożliwia taką interakcję przy minimalnym wysiłku programistów.

Drugi skrypt skupia się na automatyzacji wdrażania przy użyciu akcji GitHub. Jest to szczególnie ważne dla skutecznego utrzymywania i aktualizowania stron internetowych pkgdown. Korzystając z wdrożyć-aplikację.yaml możesz zautomatyzować proces przesyłania aktualizacji i wdrażania aplikacji ShinyLive. Kluczowe polecenia, takie jak akcje/zamówienie@v3 upewnij się, że używany jest najnowszy kod z repozytorium, a konfiguracja specyficzna dla Shinylive płynnie integruje się z przepływem pracy. Wyobraź sobie na przykład aktualizację aplikacji za pomocą nowych filtrów lub funkcji — ta automatyzacja gwarantuje, że zmiany zostaną natychmiast odzwierciedlone w Internecie, oszczędzając czas i redukując błędy ręczne. ⚙️

Trzecie rozwiązanie polega na opakowaniu aplikacji Shiny w statyczny plik HTML. Używając błyszczącelive.jsprogramiści mogą osadzić aplikację bezpośrednio w swojej witrynie internetowej pkgdown, omijając potrzebę posiadania aktywnego serwera R. Ta metoda sprawia, że ​​aplikacja jest dostępna dla użytkowników bez zainstalowanego języka R, co zwiększa dostępność. Na przykład nauczyciel może udostępnić uczniom interaktywną aplikację zawierającą dane dotyczące populacji, którzy mogą przeglądać ją bezpośrednio w swoich przeglądarkach. To rozwiązanie jest szczególnie cenne dla niekodujących, ponieważ przekształca złożone zbiory danych w angażujące i edukacyjne doświadczenie. 🌐

Osadzanie aplikacji Shiny w witrynie pkgdown za pomocą Shinylive

Rozwiązanie 1: R z Shinylive do integracji frontendu i backendu

# app.R
# Load necessary libraries
library(shiny)
library(dplyr)
library(ggplot2)

# UI definition
ui <- fluidPage(
  titlePanel("Interactive Data Viewer"),
  sidebarLayout(
    sidebarPanel(
      selectInput("var", "Select Variable:",
                  choices = names(mtcars)),
      sliderInput("range", "Filter Range:",
                  min = 0, max = 100, value = c(25, 75))
    ),
    mainPanel(plotOutput("plot"))
  )
)

# Server logic
server <- function(input, output) {
  output$plot <- renderPlot({
    data <- mtcars %>%
      filter(get(input$var) >= input$range[1],
             get(input$var) <= input$range[2])
    ggplot(data, aes_string(x = input$var)) +
      geom_histogram(bins = 10, fill = "blue", color = "white")
  })
}

# Run the app
shinyApp(ui, server)

Wdrażanie Shinylive przy użyciu akcji GitHub

Rozwiązanie 2: Automatyzacja wdrażania za pomocą GitHub Actions i Shinylive

# deploy-app.yaml
# Workflow configuration
name: Deploy ShinyLive App

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Set up R
      uses: r-lib/actions/setup-r@v2

    - name: Install dependencies
      run: |
        Rscript -e "install.packages(c('shiny', 'shinylive'))"

    - name: Deploy app
      uses: posit-dev/r-shinylive@actions-v1
      with:
        app-dir: ./

Dodanie statycznego opakowania HTML dla aplikacji Shiny

Rozwiązanie 3: Zapakuj aplikację Shiny w statyczny kod HTML w celu integracji z pakietem pkgdown

< !-- index.html -->
<!DOCTYPE html>
<html>
<head>
  <title>Interactive Shiny App</title>
  <script src="shinylive.js"></script>
</head>
<body>
  <div id="shiny-app"></div>
  <script>
    const app = new Shinylive.App("#shiny-app");
    app.run();
  </script>
</body>
</html>

Zwiększanie dostępności i wydajności stron internetowych pkgdown za pomocą ShinyLive

Jedna potężna zaleta używania ShinyLive jest jego zdolność do umożliwienia samodzielnej interaktywności bez polegania na aktywnym serwerze R. Dzięki temu idealnie nadaje się do hostowania aplikacji na platformach statycznych, takich jak GitHub Pages. W przeciwieństwie do tradycyjnych aplikacji Shiny, które wymagają ciągłej obsługi serwera, ShinyLive przekształca Twoją aplikację w samodzielny pakiet JavaScript. Ten pakiet można osadzić bezpośrednio w witrynie pkgdown, umożliwiając użytkownikom płynne przeglądanie zbiorów danych z dowolnej przeglądarki. Na przykład, jeśli pakiet R zawiera zbiór danych dotyczących metryk jakości powietrza, użytkownicy mogą dynamicznie filtrować i wizualizować dane bez konieczności instalowania dodatkowego oprogramowania. 🌍

Kolejną zaletą jest możliwość dostosowania do niekodujący. Uwzględniając funkcje takie jak menu rozwijane i suwaki, tworzysz środowisko, w którym każdy może wchodzić w interakcję z Twoimi danymi. Na przykład pracownik służby zdrowia może sprawdzić dane populacji, wybierając grupy wiekowe lub regiony, bez konieczności pisania ani jednej linijki kodu. Połączenie ShinyLive i GitHub Pages gwarantuje, że te interaktywne funkcje będą łatwo dostępne i intuicyjne, dzięki czemu Twój projekt będzie miał duży wpływ na szerszą publiczność. 🧩

Co więcej, ShinyLive zwiększa wydajność Twojej witryny pkgdown, optymalizując zasoby wymagane do uruchomienia aplikacji. Ponieważ cała logika jest wkompilowana w JavaScript, aplikacje ładują się szybciej i zapewniają płynniejszą interakcję. Jest to szczególnie przydatne do prezentowania dużych zbiorów danych, gdzie renderowanie wykresów lub stosowanie filtrów mogłoby w przeciwnym razie spowodować opóźnienia. Rezultatem jest profesjonalna obsługa użytkownika, która jest zgodna z nowoczesnymi standardami internetowymi i oczekiwaniami dotyczącymi dostępności. 🚀

Często zadawane pytania dotyczące korzystania z ShinyLive na stronach internetowych pkgdown

  1. Jak osadzić aplikację Shiny w witrynie pkgdown?
  2. Możesz użyć ShinyLive aby przekonwertować aplikację Shiny na pakiet JavaScript i osadzić go w pliku Articles sekcję Twojej witryny pkgdown.
  3. Czy konieczne jest posiadanie serwera R na żywo dla aplikacji ShinyLive?
  4. Nie, aplikacje ShinyLive są samodzielne i można je uruchamiać bezpośrednio w przeglądarce bez konieczności posiadania aktywnego serwera R.
  5. Czy mogę aktualizować aplikację automatycznie po wypchnięciu zmian do GitHub?
  6. Tak, możesz skorzystać GitHub Actions do automatyzacji wdrażania. Przepływ pracy taki jak deploy-app.yaml może się tym zająć za Ciebie.
  7. Jakie rodzaje interakcji użytkownika mogę uwzględnić?
  8. Możesz dodać funkcje takie jak selectInput dla list rozwijanych i sliderInput dla zakresów numerycznych, aby Twoja aplikacja była wysoce interaktywna.
  9. Czy ShinyLive jest odpowiedni dla osób niekodujących?
  10. Absolutnie! ShinyLive pozwala osobom niebędącym programistami eksplorować dane za pomocą interaktywnych widżetów, co czyni go doskonałym narzędziem zwiększającym dostępność.

Interaktywna eksploracja danych staje się łatwa

ShinyLive zapewnia przyjazne dla użytkownika rozwiązanie do integracji interaktywności ze stronami internetowymi pkgdown. Przekształcając aplikacje Shiny w gotowe do użycia w przeglądarce pakiety JavaScript, otwiera drzwi do wciągającej wizualizacji danych użytkownikom na wszystkich poziomach umiejętności. Na przykład zbiór danych demograficznych można eksplorować za pomocą prostych menu rozwijanych i suwaków. 🌟

Połączenie ShinyLive z GitHub Actions usprawnia proces wdrażania, zapewniając, że Twoja witryna internetowa będzie bezproblemowo aktualizowana. Niezależnie od tego, czy jesteś programistą, czy specjalistą ds. danych, to podejście wypełnia lukę między treściami technicznymi a intuicyjnym doświadczeniem użytkownika, dzięki czemu Twoje historie danych ożywają w przeglądarce internetowej. 📊

Zasoby i referencje
  1. Treść i przykłady zostały zainspirowane oficjalną dokumentacją i samouczkami ShinyLive. Więcej szczegółów znajdziesz na stronie Wprowadzenie do ShinyLive .
  2. Przepływy pracy wdrożeniowe są adaptowane z Repozytorium ShinyLive na GitHubie , który zawiera przykładowe przepływy pracy GitHub Actions i wskazówki dotyczące integracji.
  3. Strategią integracji pkgdown kierował Dokumentacja pkgdown , który oferuje wgląd w tworzenie witryn internetowych z dokumentacją pakietów R i zarządzanie nimi.
  4. Dodatkowa inspiracja pochodziła z analizy przykładu na żywo pod adresem Strona GitHub populacji SC , który prezentuje rzeczywiste zastosowanie ShinyLive w pkgdown.