
U R-u postoji mnogo različitih funkcija. Ispod ću navesti deset najzanimljivijih, o kojima mnogi možda nisu znali. Ovaj članak je nastao nakon što sam primijetio da su moji opisi nekih mogućnosti R-a, koje koristim u svom radu, naišli na oduševljenje među mojim kolegama programerima. Ako već znate sve ovo, izvinjavam se na izgubljenom vremenu. U isto vrijeme, ako imate nešto korisno za podijeliti — slobodno preporučite nešto u komentarima.
Skillbox preporučuje: Praktični tečaj .
Podsjećamo: za sve čitatelje "Habra" — popust od 10 000 rubalja prilikom upisa na bilo koji tečaj Skillbox uz promo kod "Habr".
Funkcija switch
Baš jako volim switch(). To je zapravo zgodno skraćenje if operatora za izbor vrijednosti u skladu s vrijednošću druge varijable. Ovo posebno smatram korisnim kada pišem kod koji treba učitati određeni skup podataka na osnovu prethodnog odabira. Na primjer, ako postoji varijabla pod imenom animal i trebam odabrati određeni skup podataka u zavisnosti od toga je li životinja pas, mačka ili zec, pišite ovako:
data <- read.csv(
switch(animal,
„dog“ = „dogdata.csv“,
„cat“ = „catdata.csv“,
„rabbit“ = „rabbitdata.csv“)
)
Ova mogućnost će biti korisna u Shiny aplikacijama, gdje je potrebno učitati različite skupove podataka ili datoteke okruženja na osnovu jednog ili više stavki iz menija za unos.
Prečice za RStudio
Ova prečica nije toliko za R koliko za RStudio IDE. Ipak, prečice su uvijek vrlo korisne, jer štede vrijeme prilikom unošenja teksta. Moji omiljeni su Ctrl+Shift+M za operator %>% i Alt+- za operator <-.
Da biste pregledali sve prečice, jednostavno pritisnite Alt+Shift+K u RStudio.
Paket flexdashboard
Kada trebate brzo pokrenuti Shiny nadzornu ploču, nema boljeg od paketa dashboard. Omogućava rad s HTML prečicama, koje omogućuju lako i bez problema kreiranje bočnih traka, redova i kolona. Također postoji mogućnost korištenja title bara, koji omogućava njegovo postavljanje na različite stranice aplikacije, ostavljanje ikona, prečica na Githubu, email adresa i još mnogo toga.
Paket omogućuje rad unutar Rmarkdowna, tako da sve aplikacije možete smjestiti u jedan Rmd datoteku, umjesto da ih rasporedite po različitim serverima i UI datotekama, kao što se to radi, na primjer, pomoću shinydashboarda. Uvijek koristim flexdashboard kada trebam stvoriti jednostavni prototip kontrolne ploče, prije nego što počnem raditi na nečemu složenijem. Ova funkcija omogućuje izradu prototipa unutar jednog sata.
Funkcije req i validate u R Shiny
Razvoj u R Shiny može biti zbunjujuć, posebno kada stalno dobivate čudne poruke o grešci koje ne objašnjavaju što se događa. No, kako vrijeme prolazi, Shiny se razvija i poboljšava, sve više i više funkcija pomaže u razjašnjavanju uzroka greške. Na primjer, req() rješava problem 'tihe' greške kada nije jasno što nije u redu. Pomoću nje možete prikazati UI elemente povezane s prethodnim radnjama. Objasnit ćemo na primjeru:
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() provjerava sve prije renderiranja i omogućuje prikazivanje poruke o grešci — na primjer, da je korisnik učitao pogrešnu datoteku:
# 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
})
O detaljnijim informacijama o svim tim funkcijama .
Pohranjivanje svojih vjerodajnica u sustavno okruženje
Ako planirate podijeliti kod koji zahtijeva unos pristupnih podataka — koristite sustavno okruženje kako biste izbjegli objavljivanje svojih vjerodajnica na Githubu ili drugoj usluzi. Primjer postavljanja:
Sys.setenv(
DSN = 'database_name',
UID = 'User ID',
PASS = 'Password'
)
Sada se možete prijaviti koristeći varijable okruženja:
db <– DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv('DSN'),
uid = Sys.getenv('UID'),
pwd = Sys.getenv('PASS')
)
Još je zgodnije (osobito ako često koristite podatke) postaviti ih kao varijable okruženja direktno u operativnom sustavu. U tom slučaju bit će uvijek dostupne i nećete ih trebati definirati u kodu.
Automatizacija tidyversea sa styler
Čišćenje koda može pomoći paket styler, koji ima mnoge mogućnosti za automatsko usklađivanje stila koda u tidyverse. Sve što trebate učiniti je pokrenuti styler::style_file() za vaš problematični skript. Paket će učiniti jako mnogo (ali ne sve) kako bi uspostavio red.
Parametrizacija R Markdown dokumenata
Dakle, kreirali ste odličan R Markdown dokument u kojem analizirate razne činjenice o psima. I tada vam pada na pamet da bi bilo bolje napraviti isti posao, ali s mačkama. Nema problema, možete automatizirati stvaranje izvještaja o mačkama samo jednim naredbom. Za to je potrebno samo parametrizirati vaš R Markdown dokument.
To se može učiniti postavljanjem parametara za YAML zaglavlje u navedenom dokumentu, a zatim - vrijednosti parametara.
— title: „Analiza životinja“
author: „Keith McNulty“
date: „21. ožujka 2019.“
output:
html_document:
code_folding: „hide“
params:
animal_name:
value: Pas
choices:
— Pas
— Mačka
— Zec
years_of_study:
input: kliznik
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—
Sada možete navesti sve varijable u kodu dokumenta kao params$animal_name i params$years_of_study. Zatim koristite padajući izbornik Knit (ili knit_with_parameters()) da biste dobili mogućnost odabira parametara.

revealjs
revealjs je paket koji omogućava stvaranje izvanrednih HTML prezentacija s ugrađenim R kodom, intuitivnom navigacijom i izbornikom slajdova. HTML oznake omogućuju brzo stvaranje nested strukture slajdova s različitim stilskim varijantama. A HTML će raditi na bilo kojem uređaju, tako da prezentaciju mogu otvoriti na svakom telefonu, tabletu ili laptopu. Informacije se mogu prilagoditi instaliranjem paketa i njegovim pozivanjem u YAML zaglavlju. Evo primjera:
— title: „Istraživanje ruba univerzuma analitike ljudi“
author: „Keith McNulty“
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: „HR Analytics Meetup London – 18. ožujka 2019.“
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—
Izvorni kod prezentacije , a sama <a href=„‘>prezentacija – ovdje.

HTML oznake u R Shiny
Većina programera ne koristi sve prednosti HTML oznaka koje su dostupne u R Shiny. A to je samo 110 oznaka koje omogućuju stvaranje kratkog poziva za HTML funkciju ili reprodukciju medija. Na primjer, nedavno sam koristio tags$audio za reprodukciju „pobjedničkog“ zvuka koji je obavijestio korisnika o završetku zadatka.
Paket praise
Korištenje ovog paketa je vrlo jednostavno, a potreban je za davanje pohvale korisnicima. Čini se čudno, ali njima se to zapravo sviđa.

Skillbox preporučuje:
- Dvoipogodišnji praktični tečaj .
- Online tečaj .
- Praktični godišnji tečaj .
Izvor: habr.com
