10 Utilaj R-Ecoj pri kiuj Vi Eble Ne Scias

10 Utilaj R-Ecoj pri kiuj Vi Eble Ne Scias

R estas plena de diversaj funkcioj. Malsupre mi donos dek el la plej interesaj el ili, pri kiuj multaj eble ne scias. La artikolo aperis post kiam mi malkovris, ke miaj rakontoj pri iuj el la trajtoj de R, kiujn mi uzas en mia laboro, estis entuziasme akceptitaj de samideanoj. Se vi jam scias ĉion pri ĉi tio, tiam mi pardonpetas pro malŝparo de via tempo. Samtempe, se vi havas ion por dividi, rekomendu ion utilan en la komentoj.

Skillbox rekomendas: Praktika kurso "Python-programisto".

Ni memorigas vin: por ĉiuj legantoj de "Habr" - rabato de 10 000 rubloj kiam oni enskribas en iu ajn Skillbox-kurso per la reklamkodo "Habr".

ŝaltila funkcio

Mi tre, tre ŝatas switch(). Fakte, ĝi estas oportuna stenografio por if-deklaro kiam elektas valoron bazitan sur la valoro de alia variablo. Mi trovas ĉi tion precipe utila kiam mi skribas kodon kiu bezonas ŝargi specifan aron da datumoj bazitaj sur antaŭa elekto. Ekzemple, se vi havas variablon nomatan besto kaj vi volas elekti specifan aron da datumoj depende de ĉu la besto estas hundo, kato aŭ kuniklo, skribu ĉi tion:

datumoj < — read.csv(
ŝaltilo (besto,
"hundo" = "hundodata.csv",
"kato" = "katdata.csv",
"kuniklo" = "kuniklodatumoj.csv")
)

Ĉi tiu funkcio estos utila en Brilaj aplikoj, kie vi devas ŝargi malsamajn datumsekciojn aŭ mediodosierojn depende de unu aŭ pluraj eniga menueroj.

Ramklavoj por RStudio

Ĉi tiu hako ne estas tiom por R, sed por RStudio IDE. Tamen, klavoj ĉiam estas tre oportunaj, permesante al vi ŝpari tempon dum enigo de teksto. Miaj plej ŝatataj estas Ctrl+Shift+M por la %>% operatoro kaj Alt+- por la <- operatoro.

Por vidi ĉiujn klavojn, simple premu Alt+Shift+K en RStudio.

pako flexdashboard

Kiam vi bezonas rapide lanĉi vian Shiny-panelon, estas nenio pli bona ol la panela pako. Ĝi provizas la kapablon labori kun HTML-mallongigoj, kiuj siavice faciligas kaj senĝena krei flankbretojn, vicojn kaj kolumnojn. Ankaŭ ekzistas la kapablo uzi titolbreton, kiu permesas vin meti ĝin sur malsamajn paĝojn de la aplikaĵo, lasi ikonojn, ŝparvojojn sur Github, retpoŝtadresojn kaj multe pli.

La pako permesas vin labori en la kadro de Rmarkdown, do vi povas meti ĉiujn aplikojn en unu Rmd-dosieron, kaj ne distribui ilin tra malsamaj serviloj kaj UI-dosieroj, kiel oni faras, ekzemple, uzante shinydashboard. Mi uzas flexdashboard kiam ajn mi bezonas krei simplan panelprototipon antaŭ ol labori pri io kompleksa. Ĉi tiu funkcio permesas krei prototipon ene de unu horo.

req kaj validigi funkciojn en R Shiny

Evolui en R Shiny povas esti konfuza, precipe kiam vi daŭre ricevas strangajn erarmesaĝojn, kiuj malfaciligas kompreni kio okazas. Sed kun la tempo, Shiny disvolvas kaj pliboniĝas, pli kaj pli da funkcioj aperas ĉi tie, kiuj permesas vin kompreni la kaŭzon de la eraro. Do, req() solvas la problemon per "silenta" eraro, kiam ĝenerale ne estas klare kio okazas. Ĝi permesas vin montri UI-elementojn asociitajn kun antaŭaj agoj. Ni klarigu per ekzemplo:

eligo$go_butono < — shiny::renderUI({

# nur montri butonon se besta enigo estis elektita

brila::req(enigo$besto)

# montra butono

shiny::actionButton ("iru",
alglui ("Konduto", enigo$besto, "analizo!")
)
})

validate() kontrolas ĉion antaŭ bildigo kaj donas al vi la eblon presi erarmesaĝon - ekzemple, ke la uzanto alŝutis la malĝustan dosieron:

# akiri csv-enigdosieron

enDosiero < — enigo$dosiero1
datumoj < — inFile$datumvojo

# redonu tabelon nur se ĝi estas hundoj

brila::renderTable({
# kontrolu, ke ĝi estas la hunda dosiero, ne katoj aŭ kunikloj
brila::validate(
need("Hundonomo" %en% kolnomoj(datenoj)),
"Kolumno pri Nomo de Hundo ne trovita - ĉu vi ŝargis la ĝustan dosieron?"
)

datumoj
})

Pli da informoj pri ĉiuj ĉi tiuj funkcioj troveblas ĉi tie.

Stokante viajn akreditaĵojn por vi mem en la sistema medio

Se vi planas dividi kodon, kiu postulas vin enigi akreditaĵojn, uzu la sisteman medion por eviti gastigi viajn proprajn akreditaĵojn sur Github aŭ alia servo. Ekzempla lokigo:

Sys.setenv(
DSN = "nomo_datumbazo",
UID = "Uzantidentigilo",
PASS = "Pasvorto"
)

Nun vi povas ensaluti uzante mediajn variablojn:

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

Estas eĉ pli oportune (precipe se vi uzas la datumojn ofte) agordi ilin kiel mediovariablojn rekte en la operaciumo. En ĉi tiu kazo, ili ĉiam estos disponeblaj kaj vi ne devos specifi ilin en la kodo.

Aŭtomatigu tidyverse per stililo

La styler-pakaĵo povas helpi vin purigi vian kodon; ĝi havas multajn eblojn por aŭtomate alporti la kodan stilon en tidyverse. Ĉio, kion vi bezonas fari, estas ruli styler::style_file() sur via problema skripto. La pako multe faros (sed ne ĉion) por restarigi ordon.

Parametrizante R Markdown Dokumentojn

Do vi kreis bonegan R Markdown-dokumenton, en kiu vi analizas diversajn faktojn pri hundoj. Kaj tiam venas al vi en la kapon, ke estus pli bone fari la saman laboron, sed nur kun katoj. Neniu problemo, vi povas aŭtomatigi la kreadon de kataj raportoj per nur unu komando. Por fari tion, vi nur bezonas parametrigi vian R-markdown-dokumenton.

Vi povas fari tion fiksante parametrojn por la YAML-kapo en la specifita dokumento, kaj poste fiksante la valorajn parametrojn.

- titolo: "Analizo de bestoj"
verkinto: "Keith McNulty"
dato: "21 marto 2019"
eligo:
html_dokumento:
code_folding: "kaŝi"
parametroj:
besto_nomo:
valoro: Hundo
elektoj:
— Hundo
— Kato
- Kuniklo
jaroj_de_studado:
enigo: glitilo
min: 2000
Maksimumo: 2019
paŝo 1
rondo: 1
sep: "
valoro: [2010, 2017] —

Nun vi povas registri ĉiujn variablojn en la dokumentkodo kiel params$animal_name kaj params$years_of_study. Tiam ni uzos la falmenuon Knit (aŭ knit_with_parameters()) kaj povos elekti parametrojn.

10 Utilaj R-Ecoj pri kiuj Vi Eble Ne Scias

rivelajs

revelajs estas pako, kiu ebligas al vi krei bonegajn HTML-prezentojn kun enkonstruita R-kodo, intuicia navigado kaj glitmenuoj. HTML-mallongigoj permesas vin rapide krei nestitan glitstrukturon kun malsamaj stilopcioj. Nu, HTML funkcios en ajna aparato, do la prezento povas esti malfermita sur ĉiu telefono, tablojdo aŭ tekkomputilo. Informoj povas esti agordita instalante la pakaĵon kaj vokante ĝin en la YAML-kapo. Jen ekzemplo:

- titolo: "Eksportante la Rando de la Homa Analiza Universo"
verkinto: "Keith McNulty"
eligo:
revelajs::revealjs_prezento:
centro: jes
ŝablono:starwars.html
temo: nigra
dato: "HR Analytics Meetup London - 18 marto 2019"
dosieroj_rimedoj:
— darth.png
- mortstelo.png
- hanchewy.png
- jarmilo.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Prezenta fontkodo afiŝita ĉi tie, kaj sinrpubs.com/keithmcnulty/hr_meetup_london'>prezento - ĉi tie.

10 Utilaj R-Ecoj pri kiuj Vi Eble Ne Scias

HTML-Etikedoj en R Brila

Plej multaj programistoj ne plene profitas la HTML-etikedojn, kiujn havas R Shiny. Sed ĉi tiuj estas nur 110 etikedoj, kiuj ebligas krei mallongan alvokon por HTML-funkcio aŭ amaskomunikila reproduktado. Ekzemple, mi ĵus uzis tags$audio por ludi "venkon" sonon kiu atentigis la uzanton kiam tasko estis kompletigita.

Laŭda pako

Uzi ĉi tiun pakaĵon estas tre simpla, sed necesas por montri laŭdon al la uzanto. Ŝajnas strange, sed ili fakte ŝatas ĝin.

10 Utilaj R-Ecoj pri kiuj Vi Eble Ne Scias

Skillbox rekomendas:

fonto: www.habr.com

Aldoni komenton