Beskrivelsen under er ikke nødvendigvis utfyllende og forutsetter kjennskap til RStudio og bruk av git og GitHub. Som en ekstra støtte anbefales R pacakges av Hadley Wickham og spesielt beskrivelsen av git og GitHub.
- Installér pakken rapRegTemplate i RStudio (
devtools::install_github("Rapporteket/rapRegTemplate")
) - Hent ned prosjektet rapRegTemplate til RStudio (for mer info, se her)
- Åpne fila inst/shinyApps/app1/ui.R og start Shiny-applikasjonen ("Run App")
- Navigér i applikasjonen for å se på struktur og farger (innhold mangler)
Denne delen er satt som valgfri men kan likevel være relevant, særlig om det er ønskelig å benytte templatetet som utgangspunkt for etablering av nye registre på Rapporteket.
- Lag et nytt prosjekt i RStudio som en R-pakke
- Gi pakken et navn som gjerne gjenspeiler overordnet funksjon i pakken, eksempelvis "testRegister"
- Valgfritt: hak gjerne av for "Create a git repository" også da det vil gi nyttig kunnskap når egne registre skal utvikles seinere
- Trykk "Create Project".
- Kopier inn alle filer fra katalogene "inst/" og "R/" i "rapRegTemplate" og legg disse i tilsvarende kataloger i den nye pakken
- I toppen av "server.ui" endre avhengigheten til R-pakken "rapRegTemplate" til din egen R-pakke
- Endre DESCRIPTION-fila slik at den blir nogenlunde tilssvarende den som finnes i "rapRegTemplate", særlig det som er gitt under "Depends:", "Imports:" og "Remotes:"
- Bygg, installér og last pakken i R
- Test gjerne at innebygget Shiny-applikasjon fungerer på samme vis som i prosjektet "rapRegTemplate"
- Åpne fila R/GetRegData.R
- Se på de tre delene av funksjonen som definerer registernavn og sql-spørringen samt den som bruker de to forrige til å hente data (og som returnerer ei dataramme fra funksjonen)
- Sjekk at egen konfigurasjon (i fila /home/rstudio/rap_config) er i henhold til det datagrunnlaget som er gjort tilgjengelig
- Endre i SQL-spørringen slik at den er i henhold til datagrunnlaget som ønskes benyttet
- Prøv funksjonen fra kommandolinja (Console i RStudio), e.g.
df <- getRegData("navn_på_register")
- Sjekk at du får returnert ei dataramme med X observasjoner for Y variabler, e.g.
attributes(df)
- Åpne fila R/GetFakeRegData.R
- Se at funksjonen returnerer et kjedelig og irrelevant innebygget datasett :-(
- Prøv funksjonen fra kommandolinja (Console i RStudio), e.g.
df <- getFakeRegData()
- Sjekk at du får returnert ei dataramme med X observasjoner for Y variabler, e.g.
attributes(df)
Utgangspunket for de neste stegene er bruk av det innebygde datasettet "mtcars", jf. "Alternativ 2" over.
- I shiny-applikasjonen, naviger til arkfanen "Figur og tabell"
- Åpne fila inst/shinyApps/app1/ui.R
- Bla ned til linja
tabPanel("Figur og tabell"
- Kommenter inn linjene under, lagre fila og last applikasjonen på nytt ("Reload App")
- Sjekk at det er kommet inn GUI-elementer i arkfanen "Figur og tabell" som før var tom
- Prøv gjerne de brukervalg som er i venstre kolonne
- Oppgave: gjør endringer i inst/shinyApps/app1/ui.R (på de linjene som nettopp er kommentert inn) slik at maks antall grupper endres fra 10 til 12 i applikasjonen
- Ãpne fila inst/shinyApps/app1/server.R
- Bla ned til kommentaren
# Last inn data
og kommenter inn linja under - Bla videre ned til kommentaren
# Figur og tabell
og kommenter inn de linjene som ligger under## Figur
og## Tabell
, hhv - Sjekk at det er samsvar mellom id-ene definert i inst/shinyApps/app1/ui.R og de datastrukturene (
output$distPlot
ogoutput$distTable
) du nå har definert i inst/shinyApps/app1/server.R - Se at
regData
gis inn til de funksjoner som lager figur og tabell, hhv - Se også at de samme funksjonene tar i mot de brukervalg som er definert i inst/shinyApps/app1/ui.R (
input$var
oginput$bins
) - Valgfritt: ta en titt på funksjonen som lager innholdet i figur og tabell:
?makeHist
- Lagre fila, start applikasjonen på nytt og sjekk at figur og tabell er på plass og at disse reagerer på ulike brukervalg
- Oppgave A: lag en ny arkfane "Sammendrag" (etter "Figur" og "Tabell") ved å legge til kode i inst/shinyApps/app1/ui.R
- Oppgave B: fyll "Sammendrag" med en tabell som viser
summary
av valgt variabel ved å legge til kode i inst/shinyApps/app1/server.R
Tips til oppgave B:
## Sammendrag
output$distSummary <- renderTable({
as.data.frame(sapply(regData, summary))[input$var]
}, rownames = TRUE)
Bruk samme tilnærming som over, men for "Samlerapport". Her er det en del nye elementer, bl.a.
- bruk av en Rmd-fil som rapportmal
- funksjonalitet for nedlasting av rapporten
Denne delen forutsetter bruk av Docker for Rapporteket eller tilsvarende utviklingsmiljø¸ som "simulerer" Rapporteket. Her skal hver enkelt bruker kunne bestille rutinemessig tilsending per epost av gitte rapporter, eksempelvis slik som samlerapporten over med predefinerte verdier for "Variabel" og "Antall grupper". Tilnærmingen introduserer noen nye elementer, slik som:
- reaktive verdier
- lagring av innstillinger som er "varige" også etter at appliksjonen er avsluttet
Git er et verktøy for versjonskontroll som gir mulighet for å spore endringer og samarbeide om kode. Basale funksjoner i git er svært nyttinge, men kan virke forvirrende i starten. Sørg for at egen kode (bestandig) versjonshåndteres (i git) og at koden finnes sentralisert og tilgjengelig for deg selv og andre (på GitHub).
- Sett opp git lokalt og etabler et sentralt repository for din R-pakke gjennom å følge Hadley Wickhams veiledning
- Om du ikke har det fra før, etabler et ssh-nøkkelpar for sikker kommunikasjon med GitHub
NB Ved etablering av et nøkkelpar for bruk av Secure Shell (ssh) i kommunikasjonen med GitHub (generelt lurt men også nødvendig for avansert bruk av Rapporteket) er det viktig å påse at disse blir etablert på din egen fysiske datamaskin (og eksempelvi ikke inne i en docker-container om det er i bruk)
- Om du ikke allerede har gjort det, lag din egen bruker på GitHub (se over)
- Om du ikke allerede har gjort det, legg ut den offentlige delen av ditt ssh-nøkkelpar på din github-konto
- Om du ikke allerede har gjort det, bli medlem av organisasjonen Rapporteket på GitHub
- Under din egen side på GitHub, opprett et Repository med navn tilsvarende din egen pakke (e.g. "testRegister")
- I RStudio, push pakken til ditt nye Repository på GitHub