10 Karakteristik R itil ou ka pa konnen sou

10 Karakteristik R itil ou ka pa konnen sou

R plen ak yon varyete fonksyon. Anba a mwen pral bay dis nan pi enteresan nan yo, ki anpil pa ta ka konnen sou. Atik la te parèt apre mwen te dekouvri istwa mwen sou kèk nan karakteristik R ke mwen itilize nan travay mwen yo te resevwa antouzyasm pwogramasyon parèy yo. Si ou deja konnen tout bagay sou sa a, Lè sa a, mwen eskize pou pèdi tan ou. An menm tan an, si ou gen yon bagay yo pataje, rekòmande yon bagay itil nan kòmantè yo.

Skillbox rekòmande: Kou pratik "Python devlopè".

Nou raple: pou tout lektè "Habr" - yon rabè nan 10 rubles lè w ap enskri nan nenpòt kou Skillbox lè l sèvi avèk kòd pwomosyon "Habr".

fonksyon switch

Mwen vrèman renmen switch(). An reyalite, li se yon kout kouto pratik pou yon deklarasyon si lè w ap chwazi yon valè ki baze sou valè yon lòt varyab. Mwen jwenn sa itil sitou lè m ap ekri kòd ki bezwen chaje yon seri done espesifik ki baze sou yon seleksyon anvan. Pa egzanp, si ou gen yon varyab ki rele bèt epi ou vle chwazi yon seri done espesifik selon si bèt la se yon chen, yon chat, oswa yon lapen, ekri sa:

done < — read.csv(
chanje (bèt,
"chen" = "dogdata.csv",
"chat" = "catdata.csv",
"lapen" = "rabbitdata.csv")
)

Karakteristik sa a pral itil nan aplikasyon Shiny kote ou bezwen chaje diferan seri done oswa fichye anviwònman depann sou youn oswa plis atik meni opinyon.

Raccourcis pou RStudio

Hack sa a pa tèlman pou R, men pou RStudio IDE. Sepandan, hotkeys yo toujou trè pratik, ki pèmèt ou ekonomize tan lè w ap antre tèks. Pi renmen m yo se Ctrl+Shift+M pou %>% operatè a ak Alt+- pou <- operatè a.

Pou wè tout raccourcis yo, tou senpleman peze Alt + Shift + K nan RStudio.

pake flexdashboard

Lè ou bezwen byen vit lanse tablodbò Shiny ou a, pa gen anyen ki pi bon pase pake tablodbò a. Li bay kapasite pou travay ak rakoursi HTML, ki an vire fè li fasil epi san pwoblèm pou kreye ba, ranje ak kolòn. Genyen tou kapasite pou itilize yon ba tit, ki pèmèt ou mete l sou diferan paj aplikasyon an, kite ikon, rakoursi sou Github, adrès imel ak plis ankò.

Pake a pèmèt ou travay nan kad Rmarkdown, kidonk, ou ka mete tout aplikasyon yo nan yon sèl dosye Rmd, epi yo pa distribye yo atravè diferan sèvè ak fichye UI, jan sa fèt, pou egzanp, lè l sèvi avèk shinydashboard. Mwen itilize flexdashboard chak fwa mwen bezwen kreye yon pwototip tablodbò senp anvan mwen travay sou yon bagay konplèks. Karakteristik sa a pèmèt ou kreye yon pwototip nan yon èdtan.

req ak valide fonksyon nan R Shiny

Devlope nan R Shiny ka konfizyon, sitou lè ou kontinye resevwa mesaj erè etranj ki fè li difisil pou konprann sa k ap pase. Men, apre yon tan, Shiny devlope ak amelyore, pi plis ak plis fonksyon parèt isit la ki pèmèt ou konprann kòz la nan erè a. Se konsa, req() rezoud pwoblèm nan ak yon erè "silans", lè li jeneralman pa klè sa k ap pase. Li pèmèt ou montre eleman UI ki asosye ak aksyon anvan yo. Ann eksplike ak yon egzanp:

output$go_button < — shiny::renderUI({

# bouton ekspozisyon sèlman si yo te chwazi yon opinyon bèt

shiny::req(antre$animal)

# bouton ekspozisyon

shiny::actionButton("ale",
paste ("Konduit", antre$ bèt, "analiz!")
)
})

validate() tcheke tout bagay anvan rann epi li ba ou opsyon pou enprime yon mesaj erè - pou egzanp, ke itilizatè a telechaje fichye a mal:

# jwenn dosye D 'csv

inFile <— input$file1
done < — inFile$datapath

# rann tab sèlman si se chen

shiny::renderTable({
# tcheke se dosye chen an, se pa chat oswa lapen
klere::valide(
bezwen ("Non chen" % nan% kolnames(done)),
"Kolòn non chen pa jwenn - èske ou chaje bon fichye a?"
)

done
})

Plis enfòmasyon sou tout karakteristik sa yo ka jwenn isit la.

Sere kalifikasyon ou pou tèt ou nan anviwònman sistèm lan

Si w gen plan pou pataje kòd ki mande w antre nan kalifikasyon, sèvi ak anviwònman sistèm nan pou evite hosting pwòp kalifikasyon ou sou Github oswa yon lòt sèvis. Egzanp plasman:

Sys.setenv(
DSN = "database_name",
UID = "Itilizatè ID",
PASS = "Modpas"
)

Koulye a, ou ka konekte lè l sèvi avèk varyab anviwònman:

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

Li se menm pi pratik (sitou si ou itilize done yo souvan) yo mete yo kòm varyab anviwònman dirèkteman nan sistèm nan fonksyone. Nan ka sa a, yo ap toujou disponib epi ou pa pral oblije presize yo nan kòd la.

Otomatik tidyverse ak styler

Pake styler la ka ede w netwaye kòd ou a; li gen anpil opsyon pou otomatikman pote style kòd la nan tidyverse. Tout sa ou bezwen fè se kouri styler::style_file() sou script pwoblèm ou a. Pake a pral fè anpil (men se pa tout bagay) retabli lòd.

Parametrize R Markdown Dokiman yo

Se konsa, ou te kreye yon gwo dokiman R Markdown kote ou analize plizyè reyalite sou chen. Lè sa a, li rive ou ke li ta pi bon fè menm travay la, men sèlman ak chat. Pa gen pwoblèm, ou ka otomatize kreyasyon rapò chat ak yon sèl kòmand. Pou fè sa, ou bezwen sèlman paramèt dokiman R markdown ou a.

Ou ka fè sa lè w mete paramèt pou header YAML nan dokiman espesifye a, epi lè w mete paramèt valè yo.

- Tit: "Analiz bèt"
otè: "Keith McNulty"
dat: "21 mas 2019"
pwodiksyon:
html_document:
code_folding: "kache"
paramèt:
animal_name:
valè: chen
chwa:
— Chen
— Chat
— Lapen
ane_etid:
opinyon: kurseur
min:2000
maksimòm: 2019
etap: 1
wonn: 1
sep:"
valè: [2010, 2017] —

Kounye a ou ka anrejistre tout varyab yo nan kòd dokiman an kòm params$animal_name ak params$years_of_study. Lè sa a, nou pral sèvi ak meni deroule Knit (oswa knit_with_parameters()) epi nou pral kapab chwazi paramèt.

10 Karakteristik R itil ou ka pa konnen sou

revele

revelajs se yon pake ki pèmèt ou kreye gwo prezantasyon HTML ak kòd R entegre, navigasyon entwisyon ak meni glise. Raccourcis HTML pèmèt ou byen vit kreye yon estrikti glise imbrike ak opsyon manier diferan. Oke, HTML ap kouri sou nenpòt aparèy, kidonk prezantasyon an ka louvri sou chak telefòn, tablèt oswa laptop. Divilgasyon enfòmasyon yo ka konfigirasyon lè w enstale pake a epi rele li nan header YAML la. Men yon egzanp:

— Tit: "Ekspòte Edge nan linivè People Analytics"
otè: "Keith McNulty"
pwodiksyon:
revelajs::revealjs_presentation:
sant: wi
modèl:starwars.html
tèm: nwa
dat: "HR Analytics Meetup London - 18 Mas, 2019"
fichye_resous:
— darth.png
- deathstar.png
- hanchewy.png
- milenè.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Prezantasyon kòd sous afiche isit la, ak tèt lirpubs.com/keithmcnulty/hr_meetup_london'> prezantasyon - isit la.

10 Karakteristik R itil ou ka pa konnen sou

Tags HTML nan R Shiny

Pifò pwogramè yo pa pwofite anpil avantaj de tags HTML ke R Shiny genyen. Men, sa yo se sèlman 110 Tags, ki fè li posib yo kreye yon apèl kout pou yon fonksyon HTML oswa lèktur medya. Pa egzanp, mwen fèk itilize tags$audio pou jwe yon son "viktwa" ki te avèti itilizatè a lè yon travay te fini.

Pake lwanj

Sèvi ak pake sa a trè senp, men li nesesè pou montre lwanj itilizatè a. Li sanble etranj, men yo aktyèlman renmen li.

10 Karakteristik R itil ou ka pa konnen sou

Skillbox rekòmande:

Sous: www.habr.com

Add nouvo kòmantè