10 nyttige R-funksjoner du kanskje ikke vet om

10 nyttige R-funksjoner du kanskje ikke vet om

R er full av en rekke funksjoner. Nedenfor vil jeg gi ti av de mest interessante av dem, som mange kanskje ikke visste om. Artikkelen dukket opp etter at jeg oppdaget at historiene mine om noen av funksjonene til R som jeg bruker i arbeidet mitt ble entusiastisk mottatt av andre programmerere. Hvis du allerede vet alt om dette, så beklager jeg at jeg kaster bort tiden din. Samtidig, hvis du har noe å dele, anbefaler du noe nyttig i kommentarene.

Skillbox anbefaler: Praktisk kurs "Python-utvikler".

Vi minner om: for alle lesere av "Habr" - en rabatt på 10 000 rubler når du melder deg på et hvilket som helst Skillbox-kurs ved å bruke kampanjekoden "Habr".

bryterfunksjon

Jeg liker virkelig switch(). Faktisk er det en praktisk forkortelse for en if-setning når du velger en verdi basert på verdien til en annen variabel. Jeg finner dette spesielt nyttig når jeg skriver kode som må laste et spesifikt sett med data basert på et tidligere valg. For eksempel, hvis du har en variabel kalt dyr og du vil velge et spesifikt sett med data avhengig av om dyret er en hund, en katt eller en kanin, skriv dette:

data < — read.csv(
bryter(dyr,
"dog" = "dogdata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)

Denne funksjonen vil være nyttig i skinnende applikasjoner der du trenger å laste forskjellige datasett eller miljøfiler avhengig av ett eller flere inndatamenyelementer.

Hurtigtaster for RStudio

Dette hacket er ikke så mye for R, men for RStudio IDE. Hurtigtaster er imidlertid alltid veldig praktiske, slik at du kan spare tid når du skriver inn tekst. Mine favoritter er Ctrl+Shift+M for %>%-operatoren og Alt+- for <--operatoren.

For å se alle hurtigtastene, trykk ganske enkelt Alt+Shift+K i RStudio.

flexdashboard-pakke

Når du raskt trenger å starte ditt Shiny dashbord, er det ingenting bedre enn dashbordpakken. Det gir muligheten til å jobbe med HTML-snarveier, som igjen gjør det enkelt og problemfritt å lage sidefelt, rader og kolonner. Det er også muligheten til å bruke en tittellinje, som lar deg plassere den på forskjellige sider i applikasjonen, la ikoner, snarveier på Github, e-postadresser og mye mer.

Pakken lar deg jobbe innenfor rammene av Rmarkdown, slik at du kan plassere alle applikasjoner i én Rmd-fil, og ikke distribuere dem på tvers av ulike servere og UI-filer, slik det for eksempel gjøres ved å bruke shinydashboard. Jeg bruker flexdashboard når jeg trenger å lage en enkel dashboard-prototype før jeg jobber med noe komplekst. Denne funksjonen lar deg lage en prototype innen en time.

kreve og validere funksjoner i R Shiny

Å utvikle i R Shiny kan være forvirrende, spesielt når du stadig får merkelige feilmeldinger som gjør det vanskelig å forstå hva som skjer. Men over tid, utvikler og forbedrer Shiny, flere og flere funksjoner dukker opp her som lar deg forstå årsaken til feilen. Så, req() løser problemet med en "stille" feil, når det generelt ikke er klart hva som skjer. Den lar deg vise UI-elementer knyttet til tidligere handlinger. La oss forklare med et eksempel:

output$go_button < — shiny::renderUI({

# kun visningsknapp hvis en dyreinngang er valgt

shiny::req(input$animal)

# skjermknapp

shiny::actionButton("go",
paste("Conduct", input$animal, "analyse!")
)
})

validate() sjekker alt før gjengivelse og gir deg muligheten til å skrive ut en feilmelding - for eksempel at brukeren lastet opp feil fil:

# få csv-inndatafil

inFile < — input$file1
data < — inFile$datapath

# gjengi tabell bare hvis det er hunder

shiny::renderTable({
# sjekk at det er hundefilen, ikke katter eller kaniner
skinnende::validere(
need("Hundens navn" %in% colnames(data)),
"Kolonnen Hundenavn ble ikke funnet - lastet du inn riktig fil?"
)

dato
})

Mer informasjon om alle disse funksjonene finner du her.

Lagre legitimasjonen din for deg selv i systemmiljøet

Hvis du planlegger å dele kode som krever at du oppgir legitimasjon, bruk systemmiljøet for å unngå å være vert for din egen legitimasjon på Github eller en annen tjeneste. Eksempelplassering:

Sys.setenv(
DSN = "databasenavn",
UID = "Bruker ID",
PASS = "Passord"
)

Nå kan du logge på med miljøvariabler:

db < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)

Det er enda mer praktisk (spesielt hvis du bruker dataene ofte) å sette dem som miljøvariabler direkte i operativsystemet. I dette tilfellet vil de alltid være tilgjengelige og du trenger ikke spesifisere dem i koden.

Automatiser tidyverse med styler

Stylerpakken kan hjelpe deg med å rydde opp i koden din; den har mange alternativer for automatisk å bringe kodestilen i orden. Alt du trenger å gjøre er å kjøre styler::style_file() på det problematiske skriptet ditt. Pakken vil gjøre mye (men ikke alt) for å gjenopprette orden.

Parametrisering av R Markdown-dokumenter

Så du har laget et flott R Markdown-dokument der du analyserer ulike fakta om hunder. Og så går det opp for deg at det ville være bedre å gjøre det samme arbeidet, men bare med katter. Ikke noe problem, du kan automatisere opprettelsen av katterapporter med bare én kommando. For å gjøre dette trenger du bare å parameterisere R-markdown-dokumentet.

Du kan gjøre dette ved å angi parametere for YAML-overskriften i det angitte dokumentet, og deretter angi verdiparametrene.

— tittel: «Dyreanalyse»
forfatter: "Keith McNulty"
dato: "21. mars 2019"
produksjon:
html_document:
code_folding: "skjul"
params:
dyrenavn:
verdi: Hund
valg:
-Hund
-Katt
— Kanin
studieår:
input: glidebryter
min: 2000
maks: 2019
trinn 1
runde: 1
sep: "
verdi: [2010, 2017] —

Nå kan du registrere alle variablene i dokumentkoden som params$dyrnavn og params$studieår. Da bruker vi Knit-rullegardinmenyen (eller knit_with_parameters()) og kan velge parametere.

10 nyttige R-funksjoner du kanskje ikke vet om

avslører

revealjs er en pakke som lar deg lage flotte HTML-presentasjoner med innebygd R-kode, intuitiv navigasjon og lysbildemenyer. HTML-snarveier lar deg raskt lage en nestet lysbildestruktur med forskjellige stilalternativer. Vel, HTML vil kjøre på alle enheter, så presentasjonen kan åpnes på alle telefoner, nettbrett eller bærbare datamaskiner. Informasjonsavsløring kan konfigureres ved å installere pakken og kalle den i YAML-overskriften. Her er et eksempel:

— tittel: «Exporing the Edge of the People Analytics Universe»
forfatter: "Keith McNulty"
produksjon:
revealjs::revealjs_presentation:
sentrum: ja
mal:starwars.html
tema: svart
dato: «HR Analytics Meetup London – 18. mars 2019»
ressursfiler:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Presentasjonens kildekode lagt ut her, og seg selvrpubs.com/keithmcnulty/hr_meetup_london'>presentasjon - her.

10 nyttige R-funksjoner du kanskje ikke vet om

HTML-tagger i R Shiny

De fleste programmerere drar ikke full nytte av HTML-taggene som R Shiny har. Men dette er kun 110 tagger, som gjør det mulig å lage en kort oppfordring til en HTML-funksjon eller medieavspilling. For eksempel brukte jeg nylig tags$audio for å spille av en "seier"-lyd som varslet brukeren når en oppgave ble fullført.

Ros pakke

Det er veldig enkelt å bruke denne pakken, men den er nødvendig for å vise ros til brukeren. Det virker rart, men de liker det faktisk.

10 nyttige R-funksjoner du kanskje ikke vet om

Skillbox anbefaler:

Kilde: www.habr.com

Legg til en kommentar