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

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 , ja ise <a href=ââ>esitlus â siin.

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.

Skillbox soovitab:
- Kaks aastat praktilist kursust .
- Veebikursus .
- Praktiline aastakursus .
Allikas: habr.com
