10 Mga Kapaki-pakinabang na Feature ng R na Maaaring Hindi Mo Alam

10 Mga Kapaki-pakinabang na Feature ng R na Maaaring Hindi Mo Alam

Ang R ay puno ng iba't ibang mga function. Sa ibaba ay magbibigay ako ng sampu sa mga pinaka-kawili-wili sa kanila, na maaaring hindi alam ng marami. Ang artikulo ay lumitaw pagkatapos kong matuklasan na ang aking mga kwento tungkol sa ilan sa mga tampok ng R na ginagamit ko sa aking trabaho ay masigasig na natanggap ng mga kapwa programmer. Kung alam mo na ang lahat tungkol dito, humihingi ako ng paumanhin sa pag-aaksaya ng iyong oras. Kasabay nito, kung mayroon kang ibabahagi, magrekomenda ng isang bagay na kapaki-pakinabang sa mga komento.

Inirerekomenda ng Skillbox ang: Praktikal na kurso "Python developer".

Pinapaalala namin sa iyo: para sa lahat ng mga mambabasa ng "Habr" - isang diskwento na 10 rubles kapag nag-enroll sa anumang kurso sa Skillbox gamit ang code na pang-promosyon ng "Habr".

function ng switch

Talagang gusto ko ang switch(). Sa katunayan, ito ay isang maginhawang shorthand para sa isang if statement kapag pumipili ng isang halaga batay sa halaga ng isa pang variable. Nakikita kong kapaki-pakinabang ito lalo na kapag nagsusulat ako ng code na kailangang mag-load ng isang partikular na hanay ng data batay sa isang nakaraang pagpili. Halimbawa, kung mayroon kang variable na pinangalanang hayop at gusto mong pumili ng partikular na hanay ng data depende sa kung ang hayop ay aso, pusa, o kuneho, isulat ito:

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

Magiging kapaki-pakinabang ang feature na ito sa mga Shiny na application kung saan kailangan mong mag-load ng iba't ibang set ng data o environment file depende sa isa o higit pang mga item sa menu ng input.

Mga hotkey para sa RStudio

Ang hack na ito ay hindi gaanong para sa R, ngunit para sa RStudio IDE. Gayunpaman, ang mga hotkey ay palaging napaka-maginhawa, na nagbibigay-daan sa iyong makatipid ng oras kapag nagpapasok ng teksto. Ang aking mga paborito ay Ctrl+Shift+M para sa %>% operator at Alt+- para sa <- operator.

Upang tingnan ang lahat ng mga hotkey, pindutin lamang ang Alt+Shift+K sa RStudio.

pakete ng flexdashboard

Kapag kailangan mong mabilis na ilunsad ang iyong Shiny dashboard, wala nang mas mahusay kaysa sa dashboard package. Nagbibigay ito ng kakayahang magtrabaho sa mga HTML shortcut, na ginagawang madali at walang problema sa paggawa ng mga sidebar, row at column. Mayroon ding kakayahang gumamit ng title bar, na nagpapahintulot sa iyo na ilagay ito sa iba't ibang mga pahina ng application, mag-iwan ng mga icon, mga shortcut sa Github, mga email address at marami pa.

Pinapayagan ka ng package na magtrabaho sa loob ng balangkas ng Rmarkdown, upang mailagay mo ang lahat ng mga application sa isang Rmd file, at hindi ipamahagi ang mga ito sa iba't ibang mga server at UI file, tulad ng ginagawa, halimbawa, gamit ang shinydashboard. Gumagamit ako ng flexdashboard sa tuwing kailangan kong lumikha ng isang simpleng prototype ng dashboard bago gumawa sa isang bagay na kumplikado. Ang tampok na ito ay nagpapahintulot sa iyo na lumikha ng isang prototype sa loob ng isang oras.

req at patunayan ang mga function sa R ​​Shiny

Ang pagbuo sa R ​​Shiny ay maaaring nakakalito, lalo na kapag patuloy kang nakakatanggap ng mga kakaibang mensahe ng error na nagpapahirap na maunawaan kung ano ang nangyayari. Ngunit sa paglipas ng panahon, ang Shiny ay bubuo at nagpapabuti, parami nang parami ang lumilitaw dito na nagbibigay-daan sa iyo upang maunawaan ang sanhi ng error. Kaya, nilulutas ng req() ang problema sa isang "tahimik" na error, kapag sa pangkalahatan ay hindi malinaw kung ano ang nangyayari. Pinapayagan ka nitong magpakita ng mga elemento ng UI na nauugnay sa mga nakaraang pagkilos. Ipaliwanag natin sa isang halimbawa:

output$go_button < — makintab::renderUI({

# lamang na pindutan ng display kung napili ang isang input ng hayop

makintab::req(input$animal)

# display na button

makintab::actionButton("go",
paste("Asal", input$animal, "analysis!")
)
})

sinusuri ng validate() ang lahat bago mag-render at binibigyan ka ng opsyong mag-print ng mensahe ng error - halimbawa, na na-upload ng user ang maling file:

# kumuha ng csv input file

inFile < — input$file1
data < — inFile$datapath

# render table lang kung aso

makintab::renderTable({
# suriin na ito ay ang file ng aso, hindi pusa o kuneho
makintab::validate(
need("Pangalan ng Aso" %in% colnames(data)),
“Hindi nakita ang column ng Pangalan ng Aso — na-load mo ba ang tamang file?”
)

data
})

Higit pang impormasyon tungkol sa lahat ng feature na ito matatagpuan dito.

Pag-iimbak ng iyong mga kredensyal para sa iyong sarili sa kapaligiran ng system

Kung plano mong magbahagi ng code na nangangailangan sa iyong maglagay ng mga kredensyal, gamitin ang kapaligiran ng system upang maiwasan ang pagho-host ng sarili mong mga kredensyal sa Github o ibang serbisyo. Halimbawang paglalagay:

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

Ngayon ay maaari kang mag-log in gamit ang mga variable ng kapaligiran:

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

Ito ay mas maginhawa (lalo na kung madalas mong ginagamit ang data) upang itakda ang mga ito bilang mga variable ng kapaligiran nang direkta sa operating system. Sa kasong ito, palagi silang magagamit at hindi mo na kailangang tukuyin ang mga ito sa code.

I-automate ang tidyverse gamit ang styler

Matutulungan ka ng styler package na linisin ang iyong code; mayroon itong maraming opsyon para sa awtomatikong pagdadala ng istilo ng code sa tidyverse. Ang kailangan mo lang gawin ay patakbuhin ang styler::style_file() sa iyong problemang script. Malaki ang gagawin ng package (ngunit hindi lahat) para maibalik ang kaayusan.

Parameterizing R Markdown Documents

Kaya nakagawa ka ng isang mahusay na R Markdown na dokumento kung saan sinusuri mo ang iba't ibang katotohanan tungkol sa mga aso. At pagkatapos ay nangyayari sa iyo na mas mahusay na gawin ang parehong gawain, ngunit sa mga pusa lamang. Walang problema, maaari mong i-automate ang paggawa ng mga ulat ng pusa sa isang command lang. Para magawa ito, kailangan mo lang i-parameter ang iyong R markdown na dokumento.

Magagawa mo ito sa pamamagitan ng pagtatakda ng mga parameter para sa header ng YAML sa tinukoy na dokumento, at pagkatapos ay pagtatakda ng mga parameter ng halaga.

— pamagat: “Pagsusuri ng Hayop”
may-akda: "Keith McNulty"
petsa: "Marso 21, 2019"
output:
html_document:
code_folding: "itago"
params:
pangalan_hayop:
halaga: Aso
mga pagpipilian:
—Aso
—Pusa
— Kuneho
taon_ng_pag-aaral:
input: slider
min: 2000
max: 2019
hakbang: 1
bilog: 1
sep:"
halaga: [2010, 2017] —

Maaari mo na ngayong irehistro ang lahat ng mga variable sa code ng dokumento bilang params$animal_name at params$years_of_study. Pagkatapos ay gagamitin namin ang Knit dropdown na menu (o knit_with_parameters()) at makakapili kami ng mga parameter.

10 Mga Kapaki-pakinabang na Feature ng R na Maaaring Hindi Mo Alam

revealjs

Ang revealjs ay isang package na nagbibigay-daan sa iyong lumikha ng magagandang HTML presentation na may built-in na R code, intuitive navigation at mga slide menu. Binibigyang-daan ka ng mga HTML shortcut na mabilis na gumawa ng nested na istraktura ng slide na may iba't ibang opsyon sa pag-istilo. Well, gagana ang HTML sa anumang device, kaya mabubuksan ang presentation sa bawat telepono, tablet o laptop. Maaaring i-configure ang pagbubunyag ng impormasyon sa pamamagitan ng pag-install ng package at pagtawag dito sa header ng YAML. Narito ang isang halimbawa:

— pamagat: “Pag-e-export sa Edge ng People Analytics Universe”
may-akda: "Keith McNulty"
output:
revealjs::revealjs_presentation:
center: oo
template:starwars.html
tema: itim
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
-

Source code ng pagtatanghal naka-post dito, at ang kanyang sarilirpubs.com/keithmcnulty/hr_meetup_london'>pagtatanghal - dito.

10 Mga Kapaki-pakinabang na Feature ng R na Maaaring Hindi Mo Alam

HTML Tag sa R ​​Makintab

Karamihan sa mga programmer ay hindi lubos na nagsasamantala sa mga HTML tag na mayroon ang R Shiny. Ngunit ang mga ito ay 110 tag lamang, na ginagawang posible na lumikha ng isang maikling tawag para sa isang HTML function o media playback. Halimbawa, ginamit ko kamakailan ang tags$audio upang magpatugtog ng tunog na "tagumpay" na nag-alerto sa user kapag natapos ang isang gawain.

Papuri sa package

Ang paggamit ng package na ito ay napaka-simple, ngunit ito ay kinakailangan upang ipakita ang papuri sa gumagamit. Mukhang kakaiba, ngunit talagang gusto nila ito.

10 Mga Kapaki-pakinabang na Feature ng R na Maaaring Hindi Mo Alam

Inirerekomenda ng Skillbox ang:

Pinagmulan: www.habr.com

Magdagdag ng komento