10 nyttige funktioner i R, som du mÄske ikke kender til

10 nyttige funktioner i R, som du mÄske ikke kender til

Der R-sprog er fyldt med forskellige funktioner. Nedenfor vil jeg prÊsentere ti af de mest interessante, som mange muligvis ikke kender til. Artiklen opstod efter, at jeg opdagede, at mine beskrivelser af nogle af de R-funktioner, jeg bruger i mit arbejde, blev begejstret modtaget af mine programmeringskolleger. Hvis du allerede kender til alt dette, undskylder jeg for at spilde din tid. Samtidig, hvis du har noget at dele, vil jeg sÊtte pris pÄ nyttige forslag i kommentarerne.

Skillbox anbefaler: Praktisk kursus «Python-udvikler».

Vi minder om: til alle lĂŠsere af 'Habr' — rabat pĂ„ 10.000 rubler ved tilmelding til et hvilket som helst Skillbox-kursus med rabatkoden 'Habr'.

switch-funktion

Jeg er virkelig, virkelig glad for switch(). Faktisk er det en praktisk forkortelse for if-operatoren, nÄr man vÊlger et vÊrdibaseret pÄ vÊrdien af en anden variabel. Jeg finder det isÊr nyttigt, nÄr jeg skriver kode, der skal indlÊse et bestemt datasÊt baseret pÄ tidligere valg. For eksempel, hvis jeg har en variabel ved navn animal og jeg skal vÊlge et bestemt datasÊt afhÊngigt af om dyret er en hund, kat eller kanin, kan jeg skrive:

data <- read.csv(
switch(animal,
«dog» = «dogdata.csv»,
«cat» = «catdata.csv»,
«rabbit» = «rabbitdata.csv»)
)

Denne funktion vil vÊre nyttig i Shiny-applikationer, hvor man skal indlÊse forskellige datasÊt eller miljÞfiler baseret pÄ et eller flere menupunkter.

Genvejstaster til RStudio

Denne hack er ikke sÄ meget for R, men for RStudio IDE. Alligevel er genvejstaster altid meget praktiske, da de sparer tid, nÄr man skriver tekst. Mine favoritter er Ctrl+Shift+M for operatoren %>% og Alt+- for operatoren <-.

For at se alle genvejstasterne, tryk blot pÄ Alt+Shift+K i RStudio.

flexdashboard-pakken

NÄr man hurtigt skal oprette et Shiny-dashboard, er der ikke noget bedre end dashboard-pakken. Den giver mulighed for at arbejde med HTML-genveje, som igen gÞr det nemt og problemfrit at oprette sidepaneler, rÊkker og kolonner. Der er ogsÄ mulighed for at bruge title bar, der tillader at placere den pÄ forskellige sider af applikationen, efterlade ikoner, genveje til Github, e-mailadresser og meget mere.

Pakken gÞr det muligt at arbejde inden for Rmarkdown, sÄ du kan placere alle applikationer i én Rmd-fil i stedet for at sprede dem over forskellige servere og UI-filer, som det eksempelvis gÞr med shinydashboard. Jeg bruger altid flexdashboard, nÄr jeg skal lave en simpel prototype af et dashboard, inden jeg begynder at arbejde pÄ noget mere komplekst. Denne funktion giver mulighed for at skabe en prototype pÄ en time.

Funktionerne req og validate i R Shiny

Udvikling i R Shiny kan vÊre forvirrende, isÊr nÄr man konstant modtager mÊrkelige fejlmeddelelser, som ikke giver nogen forstÄelse af, hvad der foregÄr. Men med tiden udvikler og forbedrer Shiny sig, og der kommer flere og flere funktioner, som hjÊlper med at finde Ärsagen til fejlen. For eksempel lÞser req() problemet med 'stille' fejl, hvor man slet ikke forstÄr, hvad der er galt. Med den kan man vise UI-elementer, der relaterer sig til tidligere handlinger. Lad os forklare det med et eksempel:

output$go_button <- shiny::renderUI({

# only display button if an animal input has been chosen

shiny::req(input$animal)

# display button

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

validate() tjekker alt inden rendering og giver mulighed for at vise en fejlmeddelelse – eksempelvis om, at brugeren har uploadet en forkert fil:

# get csv input file

inFile <- input$file1
data <- inFile$datapath

# render table only if it is dogs

shiny::renderTable({
# check that it is the dog file, not cats or rabbits
shiny::validate(
need("Dog Name" %in% colnames(data)),
"Dog Name column not found – did you load the right file?"
)

data
})

Du kan finde mere detaljeret information om alle disse funktioner her.

Opbevaring af sine legitimationsoplysninger i systemmiljĂžet

Hvis du planlÊgger at dele kode, som krÊver indtastning af adgangsdata, - brug systemmiljÞet for at undgÄ at placere dine egne legitimationsoplysninger i Github eller en anden tjeneste. Eksempel pÄ placering:

Sys.setenv(
DSN = "database_name",
UID = "User ID",
PASS = "Password"
)

Nu kan du logge ind ved hjĂŠlp af miljĂžvariabler:

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

Det er endnu mere praktisk (isÊr hvis du ofte bruger dataene) at sÊtte dem som miljÞvariabler direkte i operativsystemet. PÄ denne mÄde vil de altid vÊre tilgÊngelige, og du behÞver ikke angive dem i koden.

Automatisering af tidyverse med styler

At rydde op i koden kan hjĂŠlpe, kan styler-pakken, som har mange funktioner til automatisk stilretning af koden i tidyverse. Alt hvad du behĂžver at gĂžre er at kĂžre styler::style_file() for dit problematiske script. Pakken vil gĂžre meget (men ikke alt) for at bringe orden.

Parametrisering af R Markdown-dokumenter

SÄ du har oprettet et fantastisk R Markdown-dokument, hvor du analyserer forskellige fakta om hunde. Og sÄ kommer du til at tÊnke pÄ, at det ville vÊre bedre at udfÞre det samme arbejde, men kun med katte. Intet problem, du kan automatisere oprettelsen af katte-rapporter med kun én kommando. Alt hvad du skal gÞre er at parameterisere dit R Markdown-dokument.

Dette kan gĂžres ved at angive parametre for YAML-headeren i det angivne dokument, og derefter parametervĂŠrdierne.

— title: "Animal Analysis"
author: "Keith McNulty"
date: "21. marts 2019"
output:
html_document:
code_folding: "hide"
params:
animal_name:
value: Hund
choices:
— Hund
— Kat
— Kanin
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—

Nu kan du angive alle variabler i dokumentets kode som params$animal_name og params$years_of_study. Derefter kan vi bruge dropdown-menuen Knit (eller knit_with_parameters()) og fÄ mulighed for at vÊlge parametre.

10 nyttige funktioner i R, som du mÄske ikke kender til

revealjs

revealjs er en pakke, der giver mulighed for at lave fantastiske HTML-prÊsentationer med indbygget R-kode, intuitiv navigation og slide-menuer. HTML-genveje gÞr det hurtigt at skabe en indlejret struktur af slides med forskellige stilvarianter. Og HTML vil fungere pÄ enhver enhed, sÄ prÊsentationen kan Äbnes pÄ enhver telefon, tablet eller bÊrbar computer. Oplysninger kan tilpasses ved at installere pakken og kalde den i YAML-headeren. Her er et eksempel:

— title: "Exploring the Edge of the People Analytics Universe"
author: "Keith McNulty"
output:
revealjs::revealjs_presentation:
center: ja
template: starwars.html
theme: sort
date: "HR Analytics Meetup London — 18. marts, 2019"
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—

Kildekoden til prĂŠsentationen er placeret her, og selve <a href="rpubs.com/keithmcnulty/hr_meetup_london">prĂŠsentationen er her.

10 nyttige funktioner i R, som du mÄske ikke kender til

HTML-tags i R Shiny

De fleste programmĂžrer udnytter ikke alle fordelene ved HTML-tags, som findes i R Shiny. Der er kun 110 tags, der gĂžr det muligt at lave et kort kald til HTML-funktioner eller afspilning af medier. For eksempel brugte jeg for nylig tags$audio til at afspille en "vinder"-lyd, der advarede brugeren om, at en opgave var afsluttet.

Pakken praise

Det er meget enkelt at bruge denne pakke, og den er designet til at give ros til brugeren. Det virker underligt, men de elsker det faktisk.

10 nyttige funktioner i R, som du mÄske ikke kender til

Skillbox anbefaler:

Kilde: habr.com

KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KĂžb pĂ„lidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster