10 Nuttige R-kenmerke waarvan jy dalk nie weet nie

10 Nuttige R-kenmerke waarvan jy dalk nie weet nie

R is vol 'n verskeidenheid funksies. Hieronder gee ek tien van die interessantste van hulle, waarvan baie dalk nie weet nie. Die artikel het verskyn nadat ek ontdek het dat my stories oor sommige van die kenmerke van R wat ek in my werk gebruik entoesiasties deur medeprogrammeerders ontvang is. As jy reeds alles hiervan weet, dan vra ek om verskoning dat ek jou tyd mors. Terselfdertyd, as jy iets het om te deel, beveel iets nuttig in die kommentaar aan.

Skillbox beveel aan: Praktiese kursus "Python ontwikkelaar".

Ons herinner: vir alle lesers van "Habr" - 'n afslag van 10 000 roebels wanneer u inskryf vir enige Skillbox-kursus met behulp van die "Habr"-promosiekode.

skakel funksie

Ek hou regtig baie van switch(). Trouens, dit is 'n gerieflike snelskrif vir 'n if-stelling wanneer 'n waarde gekies word gebaseer op die waarde van 'n ander veranderlike. Ek vind dit veral nuttig wanneer ek kode skryf wat 'n spesifieke stel data moet laai gebaseer op 'n vorige keuse. Byvoorbeeld, as jy 'n veranderlike met die naam dier het en jy wil 'n spesifieke stel data kies, afhangende van of die dier 'n hond, 'n kat of 'n haas is, skryf dit:

data < — lees.csv(
skakelaar (dier,
"hond" = "honddata.csv",
"kat" = "katdata.csv",
"rabbit" = "rabbitdata.csv")
)

Hierdie kenmerk sal nuttig wees in Blink toepassings waar jy verskillende datastelle of omgewinglêers moet laai, afhangende van een of meer invoerkieslysitems.

Sneltoetse vir RStudio

Hierdie hack is nie soseer vir R nie, maar vir RStudio IDE. Sneltoetse is egter altyd baie gerieflik, sodat jy tyd kan bespaar wanneer jy teks invoer. My gunstelinge is Ctrl+Shift+M vir die %>% operateur en Alt+- vir die <- operateur.

Om al die sneltoetse te sien, druk eenvoudig Alt+Shift+K in RStudio.

flexdashboard pakket

Wanneer jy vinnig jou Shiny-dashboard moet begin, is daar niks beter as die dashboard-pakket nie. Dit bied die vermoë om met HTML-kortpaaie te werk, wat dit weer maklik en moeitevry maak om sybalke, rye en kolomme te skep. Daar is ook die vermoë om 'n titelbalk te gebruik, wat jou toelaat om dit op verskillende bladsye van die toepassing te plaas, ikone, kortpaaie op Github, e-posadresse en nog baie meer te laat.

Die pakket laat jou toe om binne die raamwerk van Rmarkdown te werk, sodat jy alle toepassings in een Rmd-lêer kan plaas, en dit nie oor verskillende bedieners en UI-lêers versprei nie, soos byvoorbeeld gedoen word deur shinydashboard te gebruik. Ek gebruik flexdashboard wanneer ek 'n eenvoudige dashboard-prototipe moet skep voordat ek aan iets kompleks werk. Hierdie kenmerk laat jou toe om 'n prototipe binne 'n uur te skep.

req en valideer funksies in R Shiny

Om in R Shiny te ontwikkel kan verwarrend wees, veral wanneer jy aanhoudend vreemde foutboodskappe kry wat dit moeilik maak om te verstaan ​​wat aangaan. Maar met verloop van tyd ontwikkel en verbeter Shiny, meer en meer funksies verskyn hier wat jou toelaat om die oorsaak van die fout te verstaan. Dus, req() los die probleem op met 'n "stil" fout, wanneer dit oor die algemeen nie duidelik is wat aangaan nie. Dit laat jou toe om UI-elemente te vertoon wat verband hou met vorige aksies. Kom ons verduidelik met 'n voorbeeld:

output$go_button < — shiny::renderUI({

# net vertoonknoppie as 'n dier-invoer gekies is

blink::req(invoer$dier)

# vertoonknoppie

blink::actionButton("gaan",
paste("Gedrag", invoer$dier, "analise!")
)
})

validate() kontroleer alles voordat dit weergegee word en gee jou die opsie om 'n foutboodskap te druk - byvoorbeeld dat die gebruiker die verkeerde lêer opgelaai het:

# kry csv-invoerlêer

inLêer < — invoer$lêer1
data < — inFile$datapad

# lewer tabel slegs as dit honde is

blink::renderTable({
# maak seker dat dit die hondelêer is, nie katte of hase nie
blink::valideer(
need("Hondnaam" %in% kolname(data)),
"Kolom Hondnaam nie gevind nie - het jy die regte lêer gelaai?"
)

data
})

Meer inligting oor al hierdie kenmerke kan hier gevind word.

Berg jou geloofsbriewe vir jouself in die stelselomgewing

As jy van plan is om kode te deel wat vereis dat jy geloofsbriewe moet invoer, gebruik die stelselomgewing om te verhoed dat jy jou eie geloofsbriewe op Github of 'n ander diens aanbied. Voorbeeld plasing:

Sys.setenv(
DSN = "databasisnaam",
UID = "Gebruiker ID",
PASS = "Wagwoord"
)

Nou kan jy aanmeld met omgewingsveranderlikes:

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

Dit is selfs geriefliker (veral as jy die data gereeld gebruik) om dit direk in die bedryfstelsel as omgewingsveranderlikes te stel. In hierdie geval sal hulle altyd beskikbaar wees en jy hoef dit nie in die kode te spesifiseer nie.

Outomatiseer tydyverse met stileerder

Die stileerderpakket kan jou help om jou kode skoon te maak; dit het baie opsies om die kodestyl outomaties netjies te maak. Al wat jy hoef te doen is om styler::style_file() op jou problematiese skrif te laat loop. Die pakket sal baie (maar nie alles nie) doen om orde te herstel.

Parameterisering van R Markdown-dokumente

So jy het 'n wonderlike R Markdown-dokument geskep waarin jy verskeie feite oor honde ontleed. En dan kom dit by jou op dat dit beter sal wees om dieselfde werk te doen, maar net met katte. Geen probleem nie, jy kan die skepping van katverslae outomatiseer met net een opdrag. Om dit te doen, hoef jy net jou R-afmerkdokument te parameteriseer.

U kan dit doen deur parameters vir die YAML-kopskrif in die gespesifiseerde dokument in te stel en dan die waardeparameters in te stel.

— titel: “Diere-analise”
skrywer: "Keith McNulty"
datum: "21 Maart 2019"
uitset:
html_dokument:
kode_vou: "versteek"
parame:
diernaam:
waarde: Hond
keuses:
— Hond
-Kat
- Haas
jare_van_studie:
invoer: skuifbalk
min: 2000
maksimum: 2019
stap 1
rondte: 1
sep: "
waarde: [2010, 2017] —

Nou kan jy al die veranderlikes in die dokumentkode registreer as params$diernaam en params$studiejare. Dan sal ons die Knit aftreklys (of knit_with_parameters()) gebruik en parameters kan kies.

10 Nuttige R-kenmerke waarvan jy dalk nie weet nie

openbaarjs

revealjs is 'n pakket waarmee jy wonderlike HTML-aanbiedings kan skep met ingeboude R-kode, intuïtiewe navigasie en skyfiespyskaarte. HTML-kortpaaie laat jou toe om vinnig 'n geneste skyfiestruktuur met verskillende stileringsopsies te skep. Wel, HTML sal op enige toestel loop, so die aanbieding kan op elke foon, tablet of skootrekenaar oopgemaak word. Inligtingsopenbaarmaking kan gekonfigureer word deur die pakket te installeer en dit in die YAML-kopskrif te noem. Hier is 'n voorbeeld:

- titel: "Verkenning van die rand van die People Analytics Heelal"
skrywer: "Keith McNulty"
uitset:
revealjs::revealjs_presentation:
middelpunt: ja
sjabloon:starwars.html
tema: swart
datum: "HR Analytics Meetup London – 18 Maart, 2019"
hulpbronlêers:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Aanbieding bronkode hier geplaas, en haarselfrpubs.com/keithmcnulty/hr_meetup_london'>aanbieding - hier.

10 Nuttige R-kenmerke waarvan jy dalk nie weet nie

HTML-etikette in R Blink

Die meeste programmeerders trek nie ten volle voordeel uit die HTML-etikette wat R Shiny het nie. Maar dit is slegs 110 etikette, wat dit moontlik maak om 'n kort oproep vir 'n HTML-funksie of media-afspeel te skep. Ek het byvoorbeeld onlangs tags$audio gebruik om 'n "oorwinning"-klank te speel wat die gebruiker gewaarsku het wanneer 'n taak voltooi is.

Lofprys pakkie

Die gebruik van hierdie pakket is baie eenvoudig, maar dit is nodig om lof aan die gebruiker te toon. Dit lyk vreemd, maar hulle hou eintlik daarvan.

10 Nuttige R-kenmerke waarvan jy dalk nie weet nie

Skillbox beveel aan:

Bron: will.com

Voeg 'n opmerking