
Az R tele van különféle funkciókkal. Az alábbiakban bemutatok tíz érdekeset, amelyekről sokan talán nem tudnak. A cikk akkor született, amikor észrevettem, hogy a R néhány lehetőségéről szóló történeteimet, amelyeket a munkám során használok, lelkesen fogadják a programozó ismerőseim. Ha már mindent tud erről, akkor elnézést kérek az időpazarlásért. Ugyanakkor, ha van mit megosztani — kérlek, ajánlj más hasznos dolgot a megjegyzésekben.
A Skillbox ajánlja: Gyakorlati kurzus .
Emlékeztetjük: minden «Habr» olvasónak 10 000 rubeles kedvezmény jár bármely Skillbox kurzus jelentkezésekor a «Habr» promóciós kód felhasználásával.
Switch függvény
Nagyon, nagyon szeretem a switch() függvényt. Valójában ez egy kényelmes rövidítés az if operátorra, amikor egy másik változó értéke alapján választunk értéket. Különösen hasznosnak találom, amikor kódot írok, amelynek egy adott adathalmazon kell alapulnia a korábbi választás szerint. Például, ha van egy "animal" nevű változó, és ki kell választani egy adott adathalmazt attól függően, hogy az állat kutya, macska vagy nyúl, így írd:
data < — read.csv(
switch(animal,
"dog" = "dogdata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)
Ez a lehetőség hasznos lesz a Shiny alkalmazásokban, ahol különböző adathalmazokat vagy környezeti fájlokat kell betölteni az egyik vagy több belépési menüpont alapján.
RStudio billentyűparancsok
Ez a trükk nem annyira az R-re vonatkozik, mint inkább az RStudio IDE-re. Mindazonáltal a billentyűparancsok mindig nagyon hasznosak, segítve az időmegtakarítást a szöveg bevitele során. A kedvenceim — Ctrl+Shift+M a %>% operátorhoz és Alt+- a <- operátorhoz.
A billentyűparancsok megtekintéséhez egyszerűen nyomd meg az Alt+Shift+K billentyűt az RStudio-ban.
Flexdashboard csomag
Amikor gyorsan meg kell valósítani egy Shiny irányítópultot, nincs jobb megoldás, mint a dashboard csomag. Lehetővé teszi az HTML hivatkozásokkal való munkát, amelyek segítségével egyszerűen és problémamentesen hozhatók létre oldalsávok, sorok és oszlopok. Van lehetőség címzett sáv használatára is, amely lehetővé teszi, hogy az alkalmazás különböző oldalain helyezze el, valamint ikonokat, hivatkozásokat a Github-ra, e-mail címeket és még sok mást.
A csomag lehetővé teszi a Rmarkdown keretein belüli munkát, így minden alkalmazást egy Rmd-fájlba helyezhetünk el, ahelyett, hogy különböző szerverekre és UI-fájlokra osztanánk őket, ahogy például a shinydashboard használatával történik. A flexdashboardot mindig használom, amikor egy egyszerű vezérlőpult prototípusát kell létrehoznom, mielőtt valami bonyolultabbra kezdenék dolgozni. Ez a funkció lehetővé teszi, hogy egy órán belül prototípust készítsek.
A req és validate funkciók az R Shiny-ban
Az R Shiny fejlesztés bonyolult lehet, különösen amikor folyamatosan furcsa hibaüzeneteket kapsz, amelyek semmilyen módon nem segítenek megérteni, mi történik. De az idő múlásával a Shiny fejlődik és javul, egyre több funkciót kap, amelyek segítenek tisztázni a hiba okát. Így a req() megoldja a "néma" hiba problémáját, amikor egyáltalán nem érthető, hogy mi a baj. Ezzel megjeleníthetünk olyan felhasználói felület elemeket, amelyek az előző műveletekhez kapcsolódnak. Magyarázzuk el egy példán keresztül:
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!")
)
})
A validate() ellenőrzi mindent renderelés előtt, és lehetőséget ad hibaüzenet kiírására — például arra, hogy a felhasználó hibás fájlt töltött fel:
# 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
})
További információkat az összes fenti funkcióról .
A hitelesítő adatok tárolása a rendszer környezetében
Ha meg szeretnéd osztani a kódot, ahol hozzáférési adatokat kell megadni, használj rendszerkörnyezetet a saját hitelesítő adataid Githubra vagy más szolgáltatásra való feltöltésének elkerülésére. Példa a tárolásra:
Sys.setenv(
DSN = "database_name",
UID = "User ID",
PASS = "Password"
)
Mostantól bejelentkezhetsz, a környezeti változók használatával:
db <- DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)
Még kényelmesebbé válik (különösen ha az adatok gyakran használatban vannak), ha ezeket közvetlenül az operációs rendszer környezeti változóiként állítod be. Ilyen esetben mindig elérhetőek lesznek, és nem kell megadnod őket a kódban.
A tidyverse automatizálása a stylerrel
A kód megtisztításához segíthet a styler csomag, amely számos lehetőséget kínál a kód stílusának automatikus rendezésére a tidyverse-ban. Csak annyit kell tenned, hogy futtatod a styler::style_file() parancsot a problémás scriptedhez. A csomag nagyon sok mindent megtesz (de nem mindent) a rendrakás érdekében.
R Markdown dokumentumok paraméterezése
Tehát elkészítetted a nagyszerű R Markdown dokumentumot, amelyben különböző tényeket elemzel a kutyákról. Aztán eszedbe jut, hogy jobb lenne ugyanazt a munkát elvégezni, de csak macskákkal. Semmi gond, automatizálhatod a macskákról szóló jelentések készítését egyetlen parancs segítségével. Ehhez csak paraméterezned kell a R Markdown dokumentumodat.
Ezt úgy teheted meg, hogy a YAML fejlécben megadod a paramétereket az adott dokumentumhoz, majd a paraméterek értékeit.
— title: «Állati Elemzés»
author: «Keith McNulty»
date: «2019. március 21.»
output:
html_document:
code_folding: «elrejteni»
params:
animal_name:
value: Kutyák
choices:
— Kutyák
— Macskák
— Nyulak
years_of_study:
input: csúszka
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—
Most megadhatod az összes változót a dokumentum kódjában a params$animal_name és params$years_of_study formájában. Ezután használd a Knit legördülő menüt (vagy a knit_with_parameters() parancsot) a paraméterek kiválasztásához.

revealjs
A revealjs egy csomag, amely lehetővé teszi, hogy nagyszerű HTML prezentációkat készíts beágyazott R kóddal, intuitív navigációval és diámenüvel. Az HTML rövidítések gyorsan létrehozzák a diák különböző stílusvariációkkal rendelkező beágyazott struktúráját. Az HTML bármilyen eszközön futtatható, így a prezentációt bármely telefonon, táblagépen vagy laptopon megnyithatják. Az információk megjelenését a csomag telepítése és a YAML fejlécben való meghívása után lehet testreszabni. Íme egy példa:
— title: «Exploring the Edge of the People Analytics Universe»
author: «Keith McNulty»
output:
revealjs::revealjs_presentation:
center: igen
template: starwars.html
theme: fekete
date: «HR Analytics Meetup London — 2019. március 18.»
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—
A prezentáció forráskódja , és maga <a href=«‘>prezentáció — itt.

HTML tagek az R Shinyban
A legtöbb programozó nem használja ki teljes mértékben az R Shinyban elérhető HTML tagek előnyeit. Pedig ezek mindössze 110 tagot jelentenek, amelyek lehetővé teszik a HTML funkciók rövid hívásainak vagy médiák reprodukálásának létrehozását. Például nemrégiben a tags$audio-t alkalmaztam a 'győzelmi' hang lejátszására, ami figyelmeztette a felhasználót a feladat befejezésére.
A praise csomag
Ennek a csomagnak a használata rendkívül egyszerű, és a felhasználók dicsérete céljából szükséges. Furcsának tűnhet, de valójában ezt élvezik.

A Skillbox ajánlja:
- Kétéves gyakorlati tanfolyam .
- Online kurzus .
- Gyakorlati éves kurzus .
Forrás: habr.com
