10 kasulikku funktsiooni R-st, millest te vÔisite mitte teada

10 kasulikku funktsiooni R-st, millest te vÔisite mitte teada

R-s on palju erinevaid funktsioone. Allpool tutvustan kĂŒmmet kĂ”ige huvitavamat, millest paljud ei pruugi teada. Artikkel valmis pĂ€rast seda, kui avastasin, et minu rÀÀgitud vĂ”imalused R-is, mida kasutan töös, on tuttavate programmeerijate seas vĂ€ga positiivselt vastu vĂ”etud. Kui te juba teadsite kĂ”ike seda, palun vabandage aega, mida kulutasin. Samuti, kui teil on jagada midagi kasulikku, soovitage palun kommentaarides.

Skillbox soovitab: Praktiline kursus Python-arendaja.

Tuletame meelde: kĂ”igile «Habr» lugejatele – 10 000 rubla allahindlus igale Skillboxi kursusele, kasutades sooduskoodi «Habr».

switch-funktsioon

Mulle meeldib switch() vĂ€ga-vĂ€ga. Tegelikult on see mugav lĂŒhend if-operatsioonist, kui valida vÀÀrtust vastavalt teise muutuja vÀÀrtusele. Leian, et see on eriti kasulik, kui kirjutan koodi, mis peab laadima teatud andmehulgad vastavalt varasemale valikule. NĂ€iteks, kui on muutuja nimega animal ja pean valima teatud andmehulga sĂ”ltuvalt sellest, kas loom on koer, kass vĂ”i kĂŒĂŒlik, kirjutage nii:

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

See funktsioon on kasulik Shiny-rakendustes, kus tuleb laadida erinevaid andmehulkade vĂ”i keskkonna faile sĂ”ltuvalt ĂŒhest vĂ”i mitmest sisendi menĂŒĂŒpunktist.

Otseteed RStudio jaoks

See nip ei ole niivÔrd R-i, kui RStudio IDE jaoks. Sellegipoolest on otseteed alati vÀga mugavad, aidates sÀÀsta aega teksti sisestamisel. Minu lemmikud on Ctrl+Shift+M operaatori %>% jaoks ja Alt+- operaatori <- jaoks.

Kogu otseteed vaatamiseks vajutage RStudios lihtsalt Alt+Shift+K.

Flexdashboard pakett

Kui on vaja kiiresti kĂ€ivitada Shiny juhtpaneel, pole midagi paremat kui dashboard pakett. See vĂ”imaldab töötada HTML-lĂŒhikeste linkidega, mis omakorda muudavad kĂ”rvalribade, ridade ja veergude loomise lihtsaks ja probleemivabaks. Samuti on olemas title bar'i vĂ”imalus, mis vĂ”imaldab selle paigutada rakenduse erinevatele lehtedele, jĂ€tta ikoonid, lĂŒhikesed lingid GitHubis, e-posti aadressid ja palju muud.

Pakett vĂ”imaldab töötada Rmarkdowni raames, nii et kĂ”ik rakendused saab paigutada ĂŒhte Rmd-faili, mitte jagada neid erinevatele serveritele ja UI-failidele, nagu seda tehakse nĂ€iteks shinydashboardi abil. Kasutan flexdashboardi alati, kui pean looma lihtsa juhtpaneeli prototĂŒĂŒbi, enne kui hakkan töötama millegi keerulisema kallal. See funktsioon vĂ”imaldab prototĂŒĂŒpi luua tunni jooksul.

Funktsioonid req ja validate R Shiny's

Arendamine R Shiny's vĂ”ib olla segane, eriti kui saad pidevalt kummalisi veateateid, mis ei vĂ”imalda sul aru saada, mis toimub. Kuid aja möödudes Shiny paraneb ja arendab, ĂŒha rohkem funktsioone lisandub, mis aitavad aru saada vea pĂ”hjuse osas. Nii lahendab req() 'vaikse' vea, kui pole aimugi, mis valesti on. Selle abil saab kuvada liidese elemente, mis on seotud varasemate toimingutega. Selgitame nĂ€ite abil:

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() kontrollib kĂ”ike enne renderdamist ja annab vĂ”imaluse kuvada veateate — nĂ€iteks, et kasutaja laadis vale faili:

# 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
})

Veel ĂŒksikasjalikumat teavet kĂ”igi nende funktsioonide kohta saab leida siit.

Oma volituste salvestamine sĂŒsteemi keskkonda

Kui plaanite jagada koodi, kus on vajalik sisestada juurdepÀÀsuandmed — kasutage sĂŒsteemi keskkonda, et vĂ€ltida oma volituste avaldamist Githubis vĂ”i muus teenuses. NĂ€ide salvestamisest:

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

NĂŒĂŒd saab sisse logida, kasutades keskkonnamuutujaid:

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

Veel mugavam (eriti kui andmeid kasutate tihti) on mÀÀrata need sĂŒsteemi keskkonnamuutujatena otse operatsioonisĂŒsteemis. Sel juhul on need alati saadaval ja pole vaja neid koodis nĂ€idata.

Tidyverse'i automatiseerimine styleriga

Koodi puhastamiseks vÔib kasutada styler paketti, millel on palju vÔimalusi koodi stiili automaatseks kohandamiseks tidyverse'is. KÔik, mida peate tegema, on kÀivitada styler::style_file() oma probleemse skripti jaoks. Pakett teeb vÀga palju (aga mitte kÔike), et korda luua.

R Markdown dokumentide parameetriseerimine

Nii et olete loonud suurepĂ€rase R Markdown dokumendi, kus analĂŒĂŒsite erinevaid faktilisi andmeid koerte kohta. SeejĂ€rel tuleb teile mĂ”te, et oleks parem teha sama töö, aga ainult kasside kohta. Pole hullu, saate kasside aruannete loomise automatiseerida ainult ĂŒhe kĂ€suga. Selleks peate lihtsalt parametreerima oma R markdown dokumendi.

Seda saab teha, mÀÀrates parameetrid YAML pÀises antud dokumendis ja seejÀrel vÀÀrtuste parameetrid.

— title: „Loomade analĂŒĂŒs“
author: „Keith McNulty“
date: „21. mĂ€rts 2019“
output:
html_document:
code_folding: „hide“
params:
animal_name:
value: Koer
choices:
— Koer
— Kass
— JĂ€nes
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—

NĂŒĂŒd saab kĂ”ik muutujad dokumendi koodis mÀÀrata params$animal_name ja params$years_of_study. SeejĂ€rel kasutame Knit rippmenĂŒĂŒd (vĂ”i knit_with_parameters()) ja saame valida parameetreid.

10 kasulikku funktsiooni R-st, millest te vÔisite mitte teada

revealjs

revealjs on paket, mis vĂ”imaldab luua suurepĂ€raseid HTML-esitlusi sisseehitatud R-koodiga, intuitiivse navigeerimise ja slaidimenĂŒĂŒga. HTML-i lĂŒhiĂŒlevaated vĂ”imaldavad kiiresti luua sisemisi slaidistruktuure erinevate stiilivariatsioonidega. Ja HTML kĂ€ivitatakse igas seadmes, seega saavad esitlust avada kĂ”ik telefonid, tahvelarvutid vĂ”i sĂŒlearvutid. Teavet saab kohandada, paigaldades paketi ja kutsudes selle vĂ€lja YAML pĂ€ises. Siin on nĂ€ide:

— title: „Loodan profiilide analĂŒĂŒtikute universumi ÀÀrmus“
author: „Keith McNulty“
output:
revealjs::revealjs_presentation:
center: jah
template: starwars.html
theme: must
date: „HR Analytics kohtumine Londonis — 18. mĂ€rts, 2019“
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—

Esitluse lĂ€htekood on siin, ja ise <a href=„rpubs.com/keithmcnulty/hr_meetup_london‘>esitlus — siin.

10 kasulikku funktsiooni R-st, millest te vÔisite mitte teada

HTML-sildid R Shiny's

Enamik programmeerijaid ei kasuta R Shiny's kĂ”iki HTML-siltide eeliseid. See on kokku 110 silti, mis vĂ”imaldavad luua lĂŒhikese kutse HTML-funktsioonile vĂ”i meedia esitamiseks. NĂ€iteks kasutasin hiljuti tags$audio, et esitada 'vĂ”idulaul', mis teatas kasutajale ĂŒlesande tĂ€itmise lĂ”petamisest.

Pakett praise

Selle paketi kasutamine on vÀga lihtne ja see on mÔeldud kasutaja kiitmiseks. See tundub imelik, kuid nad tÔeliselt hindavad seda.

10 kasulikku funktsiooni R-st, millest te vÔisite mitte teada

Skillbox soovitab:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster