10 Mapuslanon nga R Features Mahimong Wala Ka Kahibalo

10 Mapuslanon nga R Features Mahimong Wala Ka Kahibalo

R puno sa lain-laing mga gimbuhaton. Sa ubos ihatag nako ang napulo sa labing makaiikag niini, nga daghan tingali wala mahibal-an. Ang artikulo migawas human nako nadiskobrehan nga ang akong mga istorya bahin sa pipila ka bahin sa R ​​nga akong gigamit sa akong trabaho madasigon nga gidawat sa mga kaubang programmer. Kung nahibal-an na nimo ang tanan bahin niini, pasayloa ako sa pag-usik sa imong oras. Sa parehas nga oras, kung adunay ka ipaambit, irekomenda ang usa ka butang nga mapuslanon sa mga komento.

Girekomenda sa Skillbox: Praktikal nga kurso "Python developer".

Gipahinumduman namon ikaw: alang sa tanan nga mga magbabasa sa "Habr" - usa ka diskwento sa 10 nga mga rubles kung nagpalista sa bisan unsang kurso sa Skillbox gamit ang code sa promosyon nga "Habr".

switch function

Ganahan kaayo ko sa switch(). Sa tinuud, kini usa ka kombenyente nga shorthand alang sa usa ka pahayag kung nagpili usa ka kantidad nga gibase sa kantidad sa lain nga variable. Nakaplagan nako nga kini labi ka mapuslanon kung nagsulat ako nga code nga kinahanglan nga magkarga sa usa ka piho nga set sa datos base sa usa ka miaging pagpili. Pananglitan, kung ikaw adunay usa ka variable nga ginganlag hayop ug gusto nimo nga mopili usa ka piho nga set sa datos depende kung ang hayop usa ka iro, iring, o koneho, isulat kini:

datos < — read.csv(
switch(hayop,
"dog" = "dogdata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)

Mapuslan kini nga bahin sa Shiny nga mga aplikasyon diin kinahanglan nimo nga i-load ang lainlaing mga set sa datos o mga file sa palibot depende sa usa o daghang mga item sa menu sa input.

Mga hotkey para sa RStudio

Kini nga hack dili kaayo alang sa R, apan alang sa RStudio IDE. Bisan pa, ang mga hotkey kanunay nga kombenyente, nga gitugotan ka nga makatipig oras kung mosulod sa teksto. Ang akong paborito mao ang Ctrl+Shift+M para sa %>% operator ug Alt+- para sa <- operator.

Aron matan-aw ang tanang mga hotkey, pindota lang ang Alt+Shift+K sa RStudio.

flexdashboard nga pakete

Kung kinahanglan nimo nga dali nga ilunsad ang imong Shiny dashboard, wala’y mas maayo kaysa sa pakete sa dashboard. Naghatag kini og abilidad sa pagtrabaho uban sa HTML nga mga shortcut, nga sa baylo naghimo niini nga sayon ​​ug walay problema sa paghimo sa mga sidebar, mga laray ug mga kolum. Adunay usab ang abilidad sa paggamit sa usa ka title bar, nga nagtugot kanimo nga ibutang kini sa lainlaing mga panid sa aplikasyon, ibilin ang mga icon, mga shortcut sa Github, mga adres sa email ug daghan pa.

Gitugotan ka sa package nga magtrabaho sulod sa balangkas sa Rmarkdown, aron mabutang nimo ang tanan nga aplikasyon sa usa ka Rmd file, ug dili ipang-apod-apod kini sa lainlaing mga server ug mga file sa UI, sama sa gibuhat, pananglitan, gamit ang shinydashboard. Gigamit nako ang flexdashboard kung kinahanglan nako nga maghimo usa ka yano nga prototype sa dashboard sa wala pa magtrabaho sa usa ka butang nga komplikado. Kini nga bahin nagtugot kanimo sa paghimo og usa ka prototype sulod sa usa ka oras.

req ug pag-validate sa mga function sa R ​​Shiny

Ang pag-develop sa R ​​Shiny mahimong makalibog, labi na kung padayon ka nga makadawat mga katingad-an nga mensahe sa sayup nga nagpalisud sa pagsabut kung unsa ang nahitabo. Apan sa paglabay sa panahon, ang Shiny nag-uswag ug nag-uswag, nagkadaghan ang mga function nga makita dinhi nga nagtugot kanimo nga masabtan ang hinungdan sa sayup. Mao nga, gisulbad sa req () ang problema sa usa ka "hilom" nga sayup, kung sa kasagaran dili klaro kung unsa ang nahitabo. Gitugotan ka niini nga ipakita ang mga elemento sa UI nga may kalabotan sa nangaging mga aksyon. Atong ipasabut uban ang usa ka pananglitan:

output$go_button < — sinaw::renderUI({

# lamang ang buton sa pagpakita kung gipili ang usa ka input sa hayop

sinaw::req(input$animal)

# buton sa pagpakita

sinaw::actionButton("go",
paste("Pagbuhat", input$animal, "analysis!")
)
})

validate() nagsusi sa tanan sa wala pa mag-render ug naghatag kanimo og kapilian sa pag-imprinta og mensahe sa sayop - pananglitan, nga ang user nag-upload sa sayop nga file:

# pagkuha csv input file

inFile < — input$file1
datos < — inFile$datapath

# render table lang kung mga iro

sinaw::renderTable({
# susiha nga kini ang file sa iro, dili mga iring o koneho
sinaw::validate(
need("Ngalan sa Iro" %in% colnames(data)),
"Ang kolum sa Ngalan sa Iro wala makit-an - gikarga ba nimo ang husto nga file?"
)

nga data
})

Dugang nga impormasyon bahin sa tanan niini nga mga bahin makita dinhi.

Pagtipig sa imong mga kredensyal alang sa imong kaugalingon sa palibot sa sistema

Kung nagplano ka nga ipaambit ang code nga nanginahanglan kanimo nga mosulod sa mga kredensyal, gamita ang palibot sa sistema aron malikayan ang pag-host sa imong kaugalingon nga mga kredensyal sa Github o lain nga serbisyo. Pananglitan nga pagbutang:

Sys.setenv(
DSN = "database_name",
UID = "User ID",
PASS = "Password"
)

Karon maka-log in ka gamit ang environment variables:

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

Mas sayon ​​​​kini (labi na kung kanunay nimo gamiton ang datos) nga ibutang kini nga mga variable sa palibot direkta sa operating system. Sa kini nga kaso, kini kanunay nga magamit ug dili nimo kinahanglan nga ipiho kini sa code.

I-automate ang tidyverse gamit ang styler

Ang styler nga pakete makatabang kanimo sa paglimpyo sa imong code; kini adunay daghang mga kapilian alang sa awtomatik nga pagdala sa estilo sa code ngadto sa tidyverse. Ang kinahanglan nimong buhaton mao ang pagdagan styler::style_file() sa imong problema nga script. Daghan ang mahimo sa package (apan dili tanan) aron mapasig-uli ang kahusay.

Pag-parameter sa R ​​Markdown nga mga Dokumento

Mao nga nakahimo ka usa ka maayo nga dokumento sa R ​​Markdown diin imong gisusi ang lainlaing mga kamatuoran bahin sa mga iro. Ug unya mahitabo kanimo nga mas maayo nga buhaton ang parehas nga trabaho, apan sa mga iring lamang. Wala’y problema, mahimo nimong awtomatiko ang paghimo sa mga taho sa iring nga adunay usa ra ka mando. Aron mahimo kini, kinahanglan nimo nga i-parameter ang imong R markdown nga dokumento.

Mahimo nimo kini pinaagi sa pag-set sa mga parameter alang sa YAML header sa piho nga dokumento, ug dayon pag-set sa mga parameter sa kantidad.

— titulo: “Animal Analysis”
tagsulat: "Keith McNulty"
Petsa: "Marso 21, 2019"
output:
html_dokumento:
code_folding: "itago"
params:
animal_name:
bili: Iro
mga pagpili:
—Iro
—Iring
— Koneho
tuig_sa_pagtuon:
input: slider
min: 2000
maximum: 2019
lakang: 1
round: 1
sep:"
bili: [2010, 2017] —

Karon mahimo nimong irehistro ang tanan nga mga variable sa code sa dokumento isip params$animal_name ug params$years_of_study. Dayon atong gamiton ang Knit dropdown menu (o knit_with_parameters()) ug makapili sa mga parameter.

10 Mapuslanon nga R Features Mahimong Wala Ka Kahibalo

pagpadayagjs

Ang revealjs usa ka pakete nga nagtugot kanimo sa paghimo og maayo nga mga presentasyon sa HTML nga adunay built-in nga R code, intuitive nabigasyon ug mga slide menu. Gitugotan ka sa mga shortcut sa HTML nga dali nga makahimo og usa ka nested slide structure nga adunay lainlaing mga kapilian sa estilo. Aw, ang HTML modagan sa bisan unsang device, aron ang presentasyon maablihan sa matag telepono, tablet o laptop. Ang pagbutyag sa impormasyon mahimong ma-configure pinaagi sa pag-instalar sa package ug pagtawag niini sa YAML header. Ania ang usa ka pananglitan:

— Titulo: "Pag-ekspoyr sa Edge of the People Analytics Universe"
tagsulat: "Keith McNulty"
output:
revealjs::revealjs_presentation:
sentro: oo nga
template:starwars.html
tema: itom
petsa: "HR Analytics Meetup London - 18 Marso, 2019"
resource_files:
— darth.png
- deathstar.png
- hanchewy.png
- milenyo.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Ang source code sa presentasyon gi-post dinhi, ug sa iyang kaugalingonrpubs.com/keithmcnulty/hr_meetup_london'> presentasyon - dinhi.

10 Mapuslanon nga R Features Mahimong Wala Ka Kahibalo

HTML tag sa R ​​Shiny

Kadaghanan sa mga programmer wala magpahimulos sa bug-os nga HTML tag nga anaa sa R ​​Shiny. Apan kini 110 ra ka mga tag, nga nagpaposible sa paghimo og usa ka mubo nga tawag alang sa usa ka HTML function o media playback. Pananglitan, bag-o lang akong gigamit ang tags$audio sa pagpatukar og "kadaogan" nga tingog nga nagpaalerto sa user kung nahuman na ang usa ka buluhaton.

Pakete sa pagdayeg

Ang paggamit niini nga pakete yano ra kaayo, apan gikinahanglan kini aron ipakita ang pagdayeg sa tiggamit. Morag katingad-an, apan gusto nila kini.

10 Mapuslanon nga R Features Mahimong Wala Ka Kahibalo

Girekomenda sa Skillbox:

Source: www.habr.com

Idugang sa usa ka comment