
V R je na voljo ogromno različnih funkcij. Spodaj bom navedel deset najzanimivejših izmed njih, o katerih mnogi morda ne vedo. Članek se je pojavil po tem, ko sem opazil, da so moji opisi nekaterih možnosti R, ki jih uporabljam pri delu, bili navdušeno sprejeti s strani znanih programerjev. Opravičujem se, če že vse to veste, toda če imate kaj za deliti – predlagajte nekaj koristnega v komentarjih.
Skillbox priporoča: Praktični tečaj .
Opominjamo: za vse bralce »Habra« — popust 10 000 rubljev ob vpisu na kateri koli tečaj Skillbox s promo kodo »Habr«.
Funkcija switch
Zelo, zelo mi je všeč switch(). V bistvu je to priročna okrajšava operatorja if pri izbiri vrednosti glede na vrednost druge spremenljivke. Menim, da je to še posebej uporabno, ko pišem kodo, ki mora naložiti določen niz podatkov glede na prejšnjo izbiro. Na primer, če imam spremenljivko z imenom animal in moram izbrati določen niz podatkov, odvisno od tega, ali je žival pes, mačka ali zajec, napišem tako:
data < — read.csv(
switch(animal,
„dog“ = „dogdata.csv“,
„cat“ = „catdata.csv“,
„rabbit“ = „rabbitdata.csv“)
)
Ta možnost bo uporabna v Shiny aplikacijah, kjer je treba nalagati različne nize podatkov ali okoljske datoteke glede na enega ali več vhodnih menijev.
Bližnjice za RStudio
Ta trik ni toliko za R, kolikor za IDE RStudio. Kljub temu so bližnjice vedno zelo uporabne, saj prihranijo čas pri vnosu besedila. Moji najljubši so Ctrl+Shift+M za operator %>% in Alt+- za operator <-.
Če želite videti vse bližnjice, preprosto pritisnite Alt+Shift+K v RStudio.
Paket flexdashboard
Ko je treba hitro zagnati nadzorno ploščo Shiny, ni nič boljšega od paketa dashboard. Ponuja možnost dela s HTML bližnjicami, ki omogočajo enostavno in brez težav ustvarjanje stranskih menijev, vrstic in stolpcev. Na voljo je tudi možnost uporabe title bar, ki omogoča njegovo postavitev na različnih straneh aplikacije, dodajanje ikon, bližnjic na Github, elektronskih naslovov in še več.
Paket omogoča delo z Rmarkdown, kar pomeni, da lahko v enem Rmd-dokumentu shranite vse aplikacije, namesto da bi jih razporedili po različnih strežnikih in UI-dokumentih, kot to počnemo na primer z shinydashboard. Vedno uporabljam flexdashboard, kadar moram ustvariti preprost prototip nadzorne plošče, preden se lotim nečesa bolj zapletenega. Ta funkcija omogoča hitro izdelavo prototipa v eni uri.
Funkcije req in validate v R Shiny
Razvoj v R Shiny vas lahko zmede, še posebej, ko nenehno prejemate čudna sporočila o napakah, ki ne omogočajo razumevanja, kaj se dogaja. A s časom se Shiny razvija in izboljšuje, dodaja se vedno več funkcij, ki omogočajo razjasnitev vzroka napake. Funkcija req() rešuje težavo s 'tiho' napako, ko sploh ni jasno, v čem je težava. Omogoča prikaz elementov uporabniškega vmesnika, povezanih s prejšnjimi dejanji. Poglejmo na primeru:
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() preveri vse pred upodobitvijo in omogoča prikaz sporočila o napaki – na primer, da je uporabnik naložil napačno datoteko:
# 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
})
Več informacij o vseh teh funkcijah .
Shranjevanje svojih poverilnic v sistemskem okolju
Če nameravate deliti kodo, ki zahteva vnos dostopnih podatkov, uporabite sistemsko okolje, da se izognete nalaganju svojih poverilnic na Github ali drug servis. Primer namestitve:
Sys.setenv(
DSN = 'database_name',
UID = 'User ID',
PASS = 'Password'
)
Zdaj se lahko prijavite, tako da uporabite okoljske spremenljivke:
db <- DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv('DSN'),
uid = Sys.getenv('UID'),
pwd = Sys.getenv('PASS')
)
Še bolj priročno (še posebej, če podatke pogosto uporabljate) je, da jih nastavite kot okoljske spremenljivke kar v operacijskem sistemu. V tem primeru bodo vedno dostopne in ne bo jih treba navajati v kodi.
Avtomatizacija tidyverse z uporabo styler
Čiščenje kode lahko pomaga paket styler, ki ima veliko možnosti za avtomatsko usklajevanje sloga kode v tidyverse. Vse, kar morate storiti, je, da zaženete styler::style_file() za vaš problematični skript. Paket bo storil zelo veliko (a ne vse) za to, da uredi zadeve.
Parametrizacija dokumentov R Markdown
Torej ste ustvarili odličen dokument R Markdown, v katerem analizirate različne podatke o psih. Potem vam pride na misel, da bi bilo bolje opraviti isto delo, vendar s mačkami. Nič hudega, lahko avtomatizirate ustvarjanje poročil o mačkah s pomočjo le ene ukaze. Za to morate le parametrizirati svoj dokument R Markdown.
To lahko storite tako, da nastavite parametre za začetno YAML v navedenem dokumentu in nato – vrednosti parametrov.
— title: «Analiza živali»
author: «Keith McNulty»
date: «21. marec 2019»
output:
html_document:
code_folding: «skrij»
params:
animal_name:
value: Dog
choices:
— Dog
— Cat
— Rabbit
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—
Zdaj lahko v kodi dokumenta vnesete vse spremenljivke v obliki params$animal_name in params$years_of_study. Nato uporabite spustni meni Knit (ali knit_with_parameters()) in dobili boste možnost izbire parametrov.

revealjs
revealjs je paket, ki omogoča ustvarjanje odličnih HTML predstavitev z vgrajeno R kodo, intuitivno navigacijo in menijem diapozitivov. HTML oznake omogočajo hitro ustvarjanje vgrajene strukture diapozitivov z različnimi različicami slogov. HTML bo deloval na katerikoli napravi, tako da bodo predstavitev lahko odprli na vsakem telefonu, tablici ali prenosniku. Razkrivanje informacij lahko prilagodite tako, da namestite paket in ga pokličete v YAML glavi. Tukaj je primer:
— title: «Raziskovanje roba vesolja analitike ljudi»
author: «Keith McNulty»
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: «HR Analytics Meetup London – 18. marec 2019»
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—
Izvorna koda predstavitve , sama <a href=«‘>predstavitev – tukaj.

HTML oznake v R Shiny
Večina programerjev ne izkorišča vseh prednosti HTML oznak, ki jih ponuja R Shiny. To je vseh 110 oznak, ki omogočajo kratkoten klic HTML funkcije ali predvajanje medijev. Na primer, nedavno sem uporabil tags$audio za predvajanje 'zmage' zvoka, ki je obvestil uporabnika o končanju naloge.
Paket praise
Uporaba tega paketa je zelo preprosta, namenjen pa je pohvali uporabniku. Zdi se nenavadno, a v resnici jim je to všeč.

Skillbox priporoča:
- Двухлетний практический курс .
- Spletni tečaj .
- Практический годовой курс .
Izvor: habr.com
