10 hasznos R funkció, amiről talán nem tudtál

10 hasznos R funkció, amiről talán nem tudtál

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 Python fejlesztő.

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 itt találhat..

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.

10 hasznos R funkció, amiről talán nem tudtál

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 itt található, és maga <a href=«rpubs.com/keithmcnulty/hr_meetup_london‘>prezentáció — itt.

10 hasznos R funkció, amiről talán nem tudtál

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.

10 hasznos R funkció, amiről talán nem tudtál

A Skillbox ajánlja:

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster