Lag et register i Rapporteket

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.

Prøv templatet

  1. Installér pakken rapRegTemplate i RStudio (devtools::install_github("Rapporteket/rapRegTemplate"))
  2. Hent ned prosjektet rapRegTemplate til RStudio (for mer info, se her)
  3. Åpne fila inst/shinyApps/app1/ui.R og start Shiny-applikasjonen ("Run App")
  4. Navigér i applikasjonen for å se på struktur og farger (innhold mangler)

Valgfritt: lag ditt eget prosjekt basert på templatet

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.

  1. Lag et nytt prosjekt i RStudio som en R-pakke
  2. Gi pakken et navn som gjerne gjenspeiler overordnet funksjon i pakken, eksempelvis "testRegister"
  3. Valgfritt: hak gjerne av for "Create a git repository" også da det vil gi nyttig kunnskap når egne registre skal utvikles seinere
  4. Trykk "Create Project".
  5. Kopier inn alle filer fra katalogene "inst/" og "R/" i "rapRegTemplate" og legg disse i tilsvarende kataloger i den nye pakken
  6. I toppen av "server.ui" endre avhengigheten til R-pakken "rapRegTemplate" til din egen R-pakke
  7. 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:"
  8. Bygg, installér og last pakken i R
  9. Test gjerne at innebygget Shiny-applikasjon fungerer på samme vis som i prosjektet "rapRegTemplate"

Last registerdata

Alternativ 1: med Docker for Rapporteket

  1. Åpne fila R/GetRegData.R
  2. 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)
  3. Sjekk at egen konfigurasjon (i fila r Sys.getenv("R_RAP_CONFIG_PATH")) er i henhold til det datagrunnlaget som er gjort tilgjengelig
  4. Endre i SQL-spørringen slik at den er i henhold til datagrunnlaget som ønskes benyttet
  5. Prøv funksjonen fra kommandolinja (Console i RStudio), e.g. df <- getRegData("navn_på_register")
  6. Sjekk at du får returnert ei dataramme med X observasjoner for Y variabler, e.g. attributes(df)

Alternativ 2: uten Docker for Rapporteket

  1. Åpne fila R/GetFakeRegData.R
  2. Se at funksjonen returnerer et kjedelig og irrelevant innebygget datasett :-(
  3. Prøv funksjonen fra kommandolinja (Console i RStudio), e.g. df <- getFakeRegData()
  4. Sjekk at du får returnert ei dataramme med X observasjoner for Y variabler, e.g. attributes(df)

Lag innhold i Shiny-applikasjonen, steg 1

Utgangspunket for de neste stegene er bruk av det innebygde datasettet "mtcars", jf. "Alternativ 2" over.

  1. I shiny-applikasjonen, navigér til arkfanen "Figur og tabell"
  2. Åpne fila inst/shinyApps/app1/ui.R
  3. Bla ned til linja tabPanel("Figur og tabell"
  4. Kommenter inn linjene under, lagre fila og last applikasjonen på nytt ("Reload App")
  5. Sjekk at det er kommet inn GUI-elementer i arkfanen "Figur og tabell" som før var tom
  6. Prøv gjerne de brukervalg som er i venstre kolonne
  7. 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

Lag innhold i Shiny-applikasjonen, steg 2

  1. Åpne fila inst/shinyApps/app1/server.R
  2. Bla ned til kommentaren # Last inn data og kommenter inn linja under
  3. Bla videre ned til kommentaren # Figur og tabell og kommenter inn de linjene som ligger under ## Figur og ## Tabell, hhv
  4. Sjekk at det er samsvar mellom id-ene definert i inst/shinyApps/app1/ui.R og de datastrukturene (output$distPlot og output$distTable) du nå har definert i inst/shinyApps/app1/server.R
  5. Se at regData gis inn til de funksjoner som lager figur og tabell, hhv
  6. Se også at de samme funksjonene tar i mot de brukervalg som er definert i inst/shinyApps/app1/ui.R (input$var og input$bins)
  7. Valgfritt: ta en titt på funksjonen som lager innholdet i figur og tabell: ?makeHist
  8. Lagre fila, start applikasjonen på nytt og sjekk at figur og tabell er på plass og at disse reagerer på ulike brukervalg
  9. Oppgave A: lag en ny arkfane "Sammendrag" (etter "Figur" og "Tabell") ved å legge til kode i inst/shinyApps/app1/ui.R
  10. 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)

Lag innhold i Shiny-applikasjonen, steg 3

Bruk samme tilnærming som over, men for "Samlerapport". Her er det en del nye elementer, bl.a.

Lag innhold i Shiny-applikasjonen, steg 4

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:

Valgfritt: sjekk inn endringer i git

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).

  1. Sett opp git lokalt og etabler et sentralt repository for din R-pakke gjennom å følge Hadley Wickhams veiledning
  2. 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)

Valgfritt: dytt (push) R-pakken til GitHub

  1. Om du ikke allerede har gjort det, lag din egen bruker på GitHub (se over)
  2. Om du ikke allerede har gjort det, legg ut den offentlige delen av ditt ssh-nøkkelpar på din github-konto
  3. Om du ikke allerede har gjort det, bli medlem av organisasjonen Rapporteket på GitHub
  4. Under din egen side på GitHub, opprett et Repository med navn tilsvarende din egen pakke (e.g. "testRegister")
  5. I RStudio, push pakken til ditt nye Repository på GitHub


Rapporteket/hidra documentation built on Oct. 30, 2019, 10:53 p.m.