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.
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:
Ĉ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::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?"
)
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:
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.
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.
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
-
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.