10 hasznos R-funkció, amelyekről nem tudhat

10 hasznos R-funkció, amelyekről nem tudhat

Az R tele van különféle funkciókkal. Az alábbiakban felsorolok közülük tíz legérdekesebbet, amelyekről talán sokan nem tudnak. A cikk azután jelent meg, hogy felfedeztem, hogy a munkám során használt R-funkciókról szóló történeteimet lelkesen fogadták a programozótársak. Ha már mindent tud erről, akkor elnézést kérek az időveszteségért. Ugyanakkor, ha van mit megosztani, ajánljon valami hasznosat a megjegyzésekben.

A Skillbox a következőket ajánlja: Gyakorlati tanfolyam "Python fejlesztő".

Emlékeztetünk: a "Habr" minden olvasója számára - 10 000 rubel kedvezmény, ha a "Habr" promóciós kóddal bármely Skillbox tanfolyamra jelentkezik.

kapcsoló funkció

Nagyon-nagyon szeretem a switch()-et. Valójában ez egy kényelmes rövidítés az if utasításhoz, amikor egy másik változó értéke alapján választunk ki egy értéket. Ezt különösen hasznosnak találom, ha olyan kódot írok, amelynek egy adott adatkészletet kell betöltenie egy korábbi kijelölés alapján. Például, ha van egy állat nevű változója, és egy adott adatkészletet szeretne kiválasztani attól függően, hogy az állat kutya, macska vagy nyúl, írja be ezt:

adatok < — read.csv(
switch (állat,
"dog" = "kutyaadat.csv",
"cat" = "catdata.csv",
"nyúl" = "rabbitdata.csv")
)

Ez a funkció olyan Shiny alkalmazásokban lesz hasznos, ahol különböző adatkészleteket vagy környezeti fájlokat kell betöltenie egy vagy több beviteli menüelemtől függően.

Gyorsbillentyűk az RStudio számára

Ez a hack nem annyira az R-re vonatkozik, hanem az RStudio IDE-re. A gyorsbillentyűk azonban mindig nagyon kényelmesek, így időt takaríthat meg szövegbevitelkor. A kedvenceim a Ctrl+Shift+M a %>% operátorhoz és az Alt+- a <- operátorhoz.

Az összes gyorsbillentyű megtekintéséhez egyszerűen nyomja meg az Alt+Shift+K billentyűket az RStudio alkalmazásban.

flexdashboard csomag

Ha gyorsan el kell indítania a Shiny műszerfalat, nincs is jobb a műszerfal csomagnál. Lehetővé teszi a HTML-parancsikonokkal való munkát, amelyek viszont egyszerűvé és problémamentessé teszik az oldalsávok, sorok és oszlopok létrehozását. Lehetőség van egy címsor használatára is, amely lehetővé teszi, hogy elhelyezze az alkalmazás különböző oldalain, ikonokat, parancsikonokat hagyjon a Githubon, e-mail címeket és még sok mást.

A csomag lehetővé teszi, hogy az Rmarkdown keretein belül dolgozzon, így az összes alkalmazást egyetlen Rmd-fájlba helyezheti, és nem terjesztheti azokat különböző szerverek és felhasználói felületi fájlok között, mint például a shinydashboard használatával. A flexdashboardot akkor használom, amikor egy egyszerű műszerfal prototípust kell létrehoznom, mielőtt valami bonyolulton dolgoznék. Ezzel a funkcióval egy órán belül prototípust készíthet.

kérje és érvényesítse a funkciókat az R Shinyben

Az R Shinyben való fejlesztés zavaró lehet, különösen akkor, ha folyamatosan furcsa hibaüzeneteket kap, amelyek megnehezítik annak megértését, hogy mi történik. De idővel a Shiny fejlődik és javul, egyre több olyan funkció jelenik meg itt, amelyek lehetővé teszik a hiba okának megértését. Tehát a req() „néma” hibával oldja meg a problémát, amikor általában nem világos, hogy mi történik. Lehetővé teszi a korábbi műveletekhez társított UI-elemek megjelenítését. Magyarázzuk meg egy példával:

output$go_button < — fényes::renderUI({

# csak akkor jelenik meg gomb, ha állatbevitelt választott

fényes::req(input$animal)

# kijelző gomb

shiny::actionButton("go",
paste("Magatartás", input$animal, "analízis!")
)
})

A validate() mindent ellenőriz a megjelenítés előtt, és lehetőséget ad egy hibaüzenet kinyomtatására - például, hogy a felhasználó rossz fájlt töltött fel:

# kap csv bemeneti fájlt

inFile < — input$file1
adatok < — inFile$datapath

# csak akkor jelenítse meg a táblázatot, ha kutyákról van szó

fényes::renderTable({
# ellenőrizze, hogy ez a kutyafájl, nem a macskák vagy a nyulak
fényes::validate(
need("Kutya neve" %in% colnames(data)),
"A kutyanév oszlop nem található – a megfelelő fájlt töltötte be?"
)

dátum
})

További információ ezekről a funkciókról itt található.

A hitelesítési adatok tárolása saját magának a rendszerkörnyezetben

Ha olyan kód megosztását tervezi, amelyhez hitelesítési adatok megadása szükséges, használja a rendszerkörnyezetet, hogy elkerülje saját hitelesítő adatainak a Githubon vagy más szolgáltatásban való tárolását. Példa elhelyezésre:

Sys.setenv(
DSN = "adatbázis_neve",
UID = "Felhasználói azonosító",
PASS = "Jelszó"
)

Most már a környezeti változók használatával jelentkezhet be:

db < — DBI::dbConnect(
drv = odbc::odbc(),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv("UID"),
pwd = Sys.getenv("PASS")
)

Még kényelmesebb (főleg, ha gyakran használja az adatokat), ha közvetlenül az operációs rendszerben állítja be őket környezeti változóként. Ebben az esetben ezek mindig elérhetőek lesznek, és nem kell megadni őket a kódban.

Automatizálja a tidyverset a hajformázóval

A styler csomag segíthet a kód megtisztításában; számos lehetőség kínálkozik a kódstílus automatikus tidyverse-be hozására. Mindössze annyit kell tennie, hogy futtassa a styler::style_file()-t a problémás szkripten. A csomag sokat tesz (de nem mindent) a rend helyreállításáért.

R Markdown dokumentumok paraméterezése

Így egy nagyszerű R Markdown dokumentumot készített, amelyben különféle tényeket elemez a kutyákról. És akkor eszedbe jut, hogy jobb lenne ugyanazt a munkát elvégezni, de csak macskákkal. Nem probléma, egyetlen paranccsal automatizálhatja a macskajelentések létrehozását. Ehhez csak az R leértékelési dokumentumot kell paraméterezni.

Ezt úgy teheti meg, hogy a megadott dokumentumban beállítja a YAML-fejléc paramétereit, majd beállítja az értékparamétereket.

— cím: „Állatelemzés”
szerző: "Keith McNulty"
dátum: "21. március 2019."
kimenet:
html_document:
code_folding: "elrejtés"
paraméterek:
állat_neve:
értéke: kutya
választások:
-Kutya
-Macska
- Nyúl
years_of_study:
bemenet: csúszka
min: 2000
max: 2019
1. lépés
1. forduló
szept: "
érték: [2010, 2017] —

Mostantól a dokumentumkódban lévő összes változót bejegyezheti params$állat_neve és params$tanulmányi_évként. Ezután a Kötött legördülő menüt használjuk (vagy a knit_with_parameters()) és kiválaszthatjuk a paramétereket.

10 hasznos R-funkció, amelyekről nem tudhat

discoverjs

A discoverjs egy olyan csomag, amely lehetővé teszi nagyszerű HTML-prezentációk létrehozását beépített R-kóddal, intuitív navigációval és diamenükkel. A HTML-parancsikonok segítségével gyorsan létrehozhat egy beágyazott diastruktúrát különböző stílusbeállításokkal. Nos, a HTML bármilyen eszközön futni fog, így a prezentáció minden telefonon, táblagépen vagy laptopon megnyitható. Az információközlés a csomag telepítésével és a YAML fejlécben történő meghívásával konfigurálható. Íme egy példa:

— cím: „A People Analytics univerzum peremének felfedezése”
szerző: "Keith McNulty"
kimenet:
discoverjs::revealjs_presentation:
központ: igen
sablon: starwars.html
téma: fekete
dátum: „HR Analytics Meetup London – 18. március 2019.”
erőforrás_fájlok:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
- starwars.png
—stormtrooper.png
-

Prezentáció forráskódja itt közzétéve, és magátrpubs.com/keithmcnulty/hr_meetup_london'> bemutató - itt.

10 hasznos R-funkció, amelyekről nem tudhat

HTML címkék az R Shinyben

A legtöbb programozó nem használja ki teljes mértékben az R Shiny HTML-címkéit. De ez csak 110 címke, amely lehetővé teszi egy HTML-funkció vagy médialejátszás rövid hívását. Nemrég például a tags$audio-t használtam egy "győzelem" hang lejátszására, amely figyelmezteti a felhasználót, ha egy feladat befejeződött.

Dicséret csomag

A csomag használata nagyon egyszerű, de szükség van rá, hogy dicséretet mutassunk a felhasználónak. Furcsának tűnik, de valójában szeretik.

10 hasznos R-funkció, amelyekről nem tudhat

A Skillbox a következőket ajánlja:

Forrás: will.com

Hozzászólás