Таны мэдэхгүй байж болох 10 ашигтай R онцлог

Таны мэдэхгүй байж болох 10 ашигтай R онцлог

R нь олон төрлийн функцээр дүүрэн байдаг. Доор би тэдний ихэнх нь мэдэхгүй байж болох хамгийн сонирхолтой аравыг өгөх болно. Миний ажилдаа ашигладаг R-ийн зарим шинж чанаруудын тухай миний түүхийг бусад програмистууд урам зоригтойгоор хүлээн авсныг олж мэдсэний дараа нийтлэл гарч ирэв. Хэрэв та энэ талаар бүх зүйлийг аль хэдийн мэддэг бол цаг заваа үрсэнд хүлцэл өчье. Үүний зэрэгцээ, хэрэв танд хуваалцах зүйл байвал сэтгэгдэл дээр хэрэгтэй зүйлийг санал болго.

Skillbox зөвлөж байна: Практик курс "Python хөгжүүлэгч".

Бид танд сануулж байна: "Хабр" -ын бүх уншигчдад - "Habr" сурталчилгааны кодыг ашиглан Skillbox-ын аль ч курст бүртгүүлэхдээ 10 рублийн хөнгөлөлт.

солих функц

Би үнэхээр, үнэхээр switch() дуртай. Үнэн хэрэгтээ энэ нь өөр хувьсагчийн утга дээр үндэслэн утгыг сонгохдоо if хэллэгт тохиромжтой товчлол юм. Өмнөх сонголт дээр үндэслэн тодорхой багц өгөгдлийг ачаалах шаардлагатай код бичих үед энэ нь ялангуяа ашигтай гэж би боддог. Жишээлбэл, хэрэв танд амьтан нэртэй хувьсагч байгаа бөгөөд тухайн амьтан нохой, муур, туулай байхаас хамаарч тодорхой багц өгөгдлийг сонгохыг хүсвэл дараахыг бичнэ үү:

өгөгдөл < — read.csv(
солих (амьтан,
"нохой" = "dogdata.csv",
"муур" = "catdata.csv",
"туулай" = "rabbitdata.csv")
)

Энэ функц нь нэг буюу хэд хэдэн оролтын цэсийн зүйлээс хамааран өөр өөр өгөгдлийн багц эсвэл орчны файлуудыг ачаалах шаардлагатай Shiny програмуудад хэрэг болно.

RStudio-д зориулсан халуун товчлуурууд

Энэ хакер нь R-д биш харин RStudio IDE-д зориулагдсан юм. Гэсэн хэдий ч халуун товчлуурууд нь үргэлж маш тохиромжтой байдаг тул текст оруулахад цаг хэмнэх боломжийг олгодог. Миний дуртай зүйлс бол %>% операторын хувьд Ctrl+Shift+M, <- операторын хувьд Alt+-.

Бүх товчлууруудыг үзэхийн тулд RStudio дээр Alt+Shift+K товчийг дарахад л хангалттай.

flexdashboard багц

Та Shiny хяналтын самбараа хурдан эхлүүлэх шаардлагатай үед самбарын багцаас илүү сайн зүйл байхгүй. Энэ нь HTML товчлолуудтай ажиллах боломжийг олгодог бөгөөд энэ нь эргээд хажуугийн мөр, мөр, багана үүсгэхэд хялбар бөгөөд төвөггүй болгодог. Мөн гарчгийн мөрийг ашиглах боломжтой бөгөөд үүнийг програмын өөр өөр хуудсан дээр байрлуулах, дүрс, Github дээрх товчлол, имэйл хаяг болон бусад зүйлийг үлдээх боломжтой.

Энэхүү багц нь танд Rmarkdown-ийн хүрээнд ажиллах боломжийг олгодог бөгөөд ингэснээр та бүх програмуудыг нэг Rmd файлд байрлуулж, жишээлбэл, shinydashboard ашиглан хийдэг шиг өөр өөр сервер болон UI файлуудад тараахгүй байх боломжтой. Би ямар нэг нарийн төвөгтэй зүйл дээр ажиллахаасаа өмнө энгийн хяналтын самбарын прототипийг бүтээх шаардлагатай бол flexdashboard ашигладаг. Энэ функц нь нэг цагийн дотор прототипийг бүтээх боломжийг олгодог.

req болон R Shiny дахь функцуудыг баталгаажуулах

Ялангуяа юу болж байгааг ойлгоход хэцүү болгодог хачирхалтай алдааны мессежүүд байнга ирсээр байвал R Shiny программыг хөгжүүлэх нь төөрөгдөлд хүргэдэг. Гэвч цаг хугацаа өнгөрөх тусам Shiny хөгжиж, сайжирч, алдааны шалтгааныг ойлгох боломжийг олгодог олон функцууд энд гарч ирдэг. Тиймээс, юу болж байгаа нь ерөнхийдөө тодорхойгүй байхад req() нь асуудлыг "чимээгүй" алдаагаар шийддэг. Энэ нь өмнөх үйлдлүүдтэй холбоотой UI элементүүдийг харуулах боломжийг танд олгоно. Жишээгээр тайлбарлая:

output$go_button < — гялалзсан::renderUI({

# Зөвхөн амьтны оруулгыг сонгосон тохиолдолд харуулах товчлуур

гялалзсан::req(оролт$амьтан)

# дэлгэцийн товчлуур

гялалзсан:: actionButton("явах",
paste("Зайлшгүй байдал", input$animal, "анализ!")
)
})

validate() нь дүрслэхийн өмнө бүх зүйлийг шалгаж, алдааны мессежийг хэвлэх сонголтыг өгдөг - жишээлбэл, хэрэглэгч буруу файл байршуулсан:

# csv оролтын файл авах

inFile < — input$file1
өгөгдөл < — InFile$datapath

Зөвхөн нохой бол # хүснэгтийг үзүүлнэ

гялалзсан :: renderTable({
# муур, туулай биш нохойны файл мөн эсэхийг шалгаарай
гялалзсан :: баталгаажуулах(
хэрэгтэй("Нохойн нэр" %д% colnames(өгөгдөл)),
"Нохойн нэр багана олдсонгүй - та зөв файлыг ачаалсан уу?"
)

мэдээ
})

Эдгээр бүх шинж чанаруудын талаар дэлгэрэнгүй мэдээлэл эндээс олж болно.

Системийн орчинд итгэмжлэлээ өөртөө хадгалах

Хэрэв та итгэмжлэл оруулах шаардлагатай кодыг хуваалцахаар төлөвлөж байгаа бол Github эсвэл өөр үйлчилгээнд өөрийн итгэмжлэлээ байршуулахгүйн тулд системийн орчныг ашиглаарай. Жишээ байршуулах:

Sys.setenv(
DSN = "өгөгдлийн сангийн_нэр",
UID = "Хэрэглэгчийн ID",
PASS = "Нууц үг"
)

Одоо та орчны хувьсагчийг ашиглан нэвтэрч болно:

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

Үйлдлийн системд тэдгээрийг орчны хувьсагч болгон тохируулах нь бүр ч илүү тохиромжтой (ялангуяа та өгөгдлийг байнга ашигладаг бол). Энэ тохиолдолд тэдгээр нь үргэлж бэлэн байх бөгөөд та тэдгээрийг кодонд зааж өгөх шаардлагагүй болно.

Стиллерийн тусламжтайгаар эмх цэгцийг автоматжуулах

Styler багц нь таны кодыг цэвэрлэхэд тусална; энэ нь кодын хэв маягийг автоматаар эмх цэгцтэй болгох олон сонголттой. Асуудалтай скрипт дээрээ styler::style_file()-г ажиллуулахад л хангалттай. Багц нь дэг журмыг сэргээхийн тулд маш их зүйлийг хийх болно (гэхдээ бүх зүйл биш).

R Markdown Documents-ийг параметржүүлэх

Тиймээс та нохойн тухай янз бүрийн баримтуудыг задлан шинжилж буй гайхалтай R Markdown баримт бичгийг бүтээсэн. Дараа нь зөвхөн мууртай адилхан ажил хийх нь дээр гэж бодож байна. Ямар ч асуудалгүй, та зөвхөн нэг командын тусламжтайгаар муурны тайланг автоматжуулах боломжтой. Үүнийг хийхийн тулд та зөвхөн R тэмдэглэгээний баримт бичигт параметр оруулах хэрэгтэй.

Та заасан баримт бичигт YAML толгой хэсэгт параметрүүдийг тохируулж, дараа нь утгын параметрүүдийг тохируулснаар үүнийг хийж болно.

- гарчиг: "Амьтны шинжилгээ"
Зохиогч: "Кит МакНалти"
огноо: "21 оны 2019-р сарын XNUMX"
гаралт:
html_баримт бичиг:
code_folding: "нуух"
параметрүүд:
амьтны_нэр:
үнэ цэнэ: нохой
сонголтууд:
-Нохой
- Муур
- Туулай
сурсан_жил:
оролт: гулсагч
мин: 2000
хамгийн их: 2019
1-р алхам
дугуй: 1
сентябрь: "
үнэ цэнэ: [2010, 2017] -

Одоо та баримт бичгийн кодын бүх хувьсагчдыг params$animal_name болон params$years_of_study гэж бүртгэж болно. Дараа нь бид Knit dropdown цэсийг (эсвэл knit_with_parameters()) ашиглаж, параметрүүдийг сонгох боломжтой болно.

Таны мэдэхгүй байж болох 10 ашигтай R онцлог

openjs

discoverjs нь суулгасан R код, ойлгомжтой навигаци, слайд цэсээр гайхалтай HTML үзүүлэнгүүдийг үүсгэх боломжийг олгодог багц юм. HTML товчлолууд нь янз бүрийн загварчлалын сонголт бүхий үүрлэсэн слайд бүтцийг хурдан үүсгэх боломжийг олгодог. HTML ямар ч төхөөрөмж дээр ажиллах тул гар утас, таблет, зөөврийн компьютер бүрт танилцуулгыг нээх боломжтой. Мэдээллийн ил тод байдлыг багцыг суулгаж, YAML толгой хэсэгт дуудаж тохируулж болно. Энд нэг жишээ байна:

- гарчиг: "Хүмүүсийн аналитик ертөнцийн ирмэгийг экспортлох нь"
Зохиогч: "Кит МакНалти"
гаралт:
discoverjs::revealjs_presentation:
төв: тиймээ
загвар: starwars.html
сэдэв: хар
огноо: "HR Analytics Meetup London - 18 оны 2019-р сарын XNUMX"
нөөцийн_файлууд:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Үзүүлэнгийн эх код энд нийтэлсэн, мөн өөрөөrpubs.com/keithmcnulty/hr_meetup_london'>танилцуулга - энд.

Таны мэдэхгүй байж болох 10 ашигтай R онцлог

R Shiny дахь HTML шошго

Ихэнх програмистууд R Shiny-д байдаг HTML хаягуудыг бүрэн ашигладаггүй. Гэхдээ эдгээр нь ердөө 110 шошго бөгөөд энэ нь HTML функц эсвэл медиа тоглуулах богино дуудлага хийх боломжтой болгодог. Жишээ нь, би саяхан tags$audio-г ашиглан ажил дууссаны дараа хэрэглэгчийг сэрэмжлүүлдэг "ялалт" дууг тоглуулсан.

Магтаалын багц

Энэ багцыг ашиглах нь маш энгийн боловч хэрэглэгчдэд магтаал үзүүлэхэд шаардлагатай байдаг. Энэ нь хачирхалтай санагдаж байгаа ч үнэндээ тэдэнд таалагддаг.

Таны мэдэхгүй байж болох 10 ашигтай R онцлог

Skillbox зөвлөж байна:

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх