10 Nyttige R-funktioner, du måske ikke kender

10 Nyttige R-funktioner, du måske ikke kender

R er fuld af en række funktioner. Nedenfor vil jeg give ti af de mest interessante af dem, som mange måske ikke kender til. Artiklen dukkede op, efter jeg opdagede, at mine historier om nogle af funktionerne i R, som jeg bruger i mit arbejde, blev entusiastisk modtaget af andre programmører. Hvis du allerede ved alt om dette, så undskylder jeg at spilde din tid. På samme tid, hvis du har noget at dele, kan du anbefale noget nyttigt i kommentarerne.

Skillbox anbefaler: Praktisk kursus "Python udvikler".

Påmindelse: for alle læsere af "Habr" - en rabat på 10 rubler ved tilmelding til ethvert Skillbox-kursus ved hjælp af "Habr"-kampagnekoden.

skifte funktion

Jeg kan virkelig godt lide switch(). Faktisk er det en praktisk forkortelse for en if-sætning, når du vælger en værdi baseret på værdien af ​​en anden variabel. Jeg finder dette især nyttigt, når jeg skriver kode, der skal indlæse et bestemt sæt data baseret på et tidligere valg. For eksempel, hvis du har en variabel ved navn dyr, og du vil vælge et bestemt sæt data afhængigt af, om dyret er en hund, en kat eller en kanin, så skriv dette:

data < — read.csv(
skifte(dyr,
"hund" = "hundedata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)

Denne funktion vil være nyttig i Shiny-applikationer, hvor du skal indlæse forskellige datasæt eller miljøfiler afhængigt af et eller flere inputmenupunkter.

Genvejstaster til RStudio

Dette hack er ikke så meget for R, men for RStudio IDE. Men genvejstaster er altid meget praktiske, så du kan spare tid, når du indtaster tekst. Mine favoritter er Ctrl+Shift+M for operatoren %>% og Alt+- for operatoren <-.

For at se alle genvejstaster skal du blot trykke på Alt+Shift+K i RStudio.

flexdashboard pakke

Når du hurtigt skal starte dit Shiny dashboard, er der intet bedre end dashboardpakken. Det giver mulighed for at arbejde med HTML-genveje, som igen gør det nemt og problemfrit at oprette sidebjælker, rækker og kolonner. Der er også mulighed for at bruge en titellinje, som giver dig mulighed for at placere den på forskellige sider af applikationen, efterlade ikoner, genveje på Github, e-mailadresser og meget mere.

Pakken giver dig mulighed for at arbejde indenfor rammerne af Rmarkdown, så du kan placere alle applikationer i én Rmd-fil, og ikke distribuere dem på tværs af forskellige servere og UI-filer, som det for eksempel gøres ved hjælp af shinydashboard. Jeg bruger flexdashboard, når jeg har brug for at skabe en simpel dashboard-prototype, før jeg arbejder på noget komplekst. Denne funktion giver dig mulighed for at oprette en prototype inden for en time.

kræve og validere funktioner i R Shiny

Udvikling i R Shiny kan være forvirrende, især når du bliver ved med at få mærkelige fejlmeddelelser, der gør det svært at forstå, hvad der foregår. Men over tid, Shiny udvikler og forbedrer, dukker flere og flere funktioner op her, som giver dig mulighed for at forstå årsagen til fejlen. Så req() løser problemet med en "tavs" fejl, når det generelt ikke er klart, hvad der foregår. Det giver dig mulighed for at vise UI-elementer forbundet med tidligere handlinger. Lad os forklare med et eksempel:

output$go_button < — shiny::renderUI({

# kun visningsknap, hvis der er valgt et dyreinput

shiny::req(input$animal)

# displayknap

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

validate() kontrollerer alt før gengivelse og giver dig mulighed for at udskrive en fejlmeddelelse - for eksempel at brugeren har uploadet den forkerte fil:

# hent csv-inputfil

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

# render kun tabel, hvis det er hunde

shiny::renderTabel({
# tjek at det er hundefilen, ikke katte eller kaniner
skinnende::validere(
need("Hundens navn" %i% colnames(data)),
"Kolonnen Hundenavn blev ikke fundet - indlæste du den rigtige fil?"
)

data
})

Mere information om alle disse funktioner kan findes her.

Lagring af dine legitimationsoplysninger for dig selv i systemmiljøet

Hvis du planlægger at dele kode, der kræver, at du indtaster legitimationsoplysninger, skal du bruge systemmiljøet til at undgå at hoste dine egne legitimationsoplysninger på Github eller en anden tjeneste. Eksempel på placering:

Sys.setenv(
DSN = "databasenavn",
UID = "Bruger-id",
PASS = "Adgangskode"
)

Nu kan du logge ind med miljøvariabler:

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

Det er endnu mere bekvemt (især hvis du bruger data ofte) at indstille dem som miljøvariabler direkte i operativsystemet. I dette tilfælde vil de altid være tilgængelige, og du behøver ikke at angive dem i koden.

Automatiser tidyverse med styler

Stylerpakken kan hjælpe dig med at rydde op i din kode; den har mange muligheder for automatisk at bringe kodestilen i orden. Alt du skal gøre er at køre styler::style_file() på dit problematiske script. Pakken vil gøre meget (men ikke alt) for at genoprette orden.

Parametrisering af R Markdown-dokumenter

Så du har lavet et fantastisk R Markdown-dokument, hvor du analyserer forskellige fakta om hunde. Og så går det op for dig, at det ville være bedre at udføre det samme arbejde, men kun med katte. Intet problem, du kan automatisere oprettelsen af ​​katterapporter med kun én kommando. For at gøre dette behøver du kun at parametrere dit R markdown-dokument.

Du kan gøre dette ved at indstille parametre for YAML-headeren i det angivne dokument og derefter indstille værdiparametrene.

— titel: "Dyreanalyse"
forfatter: "Keith McNulty"
dato: "21. marts 2019"
produktion:
html_document:
code_folding: "skjul"
parametre:
dyrenavn:
værdi: Hund
valg:
-Hund
-Kat
- Kanin
studieår:
input: skyder
min: 2000
max: 2019
trin 1
runde: 1
sep: "
værdi: [2010, 2017] —

Nu kan du registrere alle variablerne i dokumentkoden som params$dyrsnavn og params$studieår. Så vil vi bruge rullemenuen Strik (eller knit_with_parameters()) og være i stand til at vælge parametre.

10 Nyttige R-funktioner, du måske ikke kender

afslører

revealjs er en pakke, der giver dig mulighed for at skabe fantastiske HTML-præsentationer med indbygget R-kode, intuitiv navigation og diasmenuer. HTML-genveje giver dig mulighed for hurtigt at oprette en indlejret diasstruktur med forskellige stilindstillinger. Nå, HTML kører på enhver enhed, så præsentationen kan åbnes på enhver telefon, tablet eller bærbar computer. Offentliggørelse af oplysninger kan konfigureres ved at installere pakken og kalde den i YAML-headeren. Her er et eksempel:

— titel: "Udforske kanten af ​​People Analytics Universe"
forfatter: "Keith McNulty"
produktion:
revealjs::revealjs_præsentation:
center: ja
skabelon:starwars.html
tema: sort
dato: "HR Analytics Meetup London – 18. marts 2019"
ressource_filer:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png

Præsentationens kildekode lagt op her, og hende selvrpubs.com/keithmcnulty/hr_meetup_london'>præsentation - her.

10 Nyttige R-funktioner, du måske ikke kender

HTML-tags i R Shiny

De fleste programmører udnytter ikke de HTML-tags, som R Shiny har. Men det er kun 110 tags, som gør det muligt at lave et kort opkald til en HTML-funktion eller medieafspilning. For eksempel brugte jeg for nylig tags$audio til at afspille en "sejr"-lyd, der advarede brugeren, når en opgave var fuldført.

Ros pakke

Brugen af ​​denne pakke er meget enkel, men den er nødvendig for at vise ros til brugeren. Det virker mærkeligt, men de kan faktisk godt lide det.

10 Nyttige R-funktioner, du måske ikke kender

Skillbox anbefaler:

Kilde: www.habr.com

Tilføj en kommentar