Siz bilmagan 10 foydali R xususiyati

Siz bilmagan 10 foydali R xususiyati

R turli funktsiyalarga to'la. Quyida men ulardan eng qiziqarli o'ntasini beraman, ular haqida ko'pchilik bilmagan bo'lishi mumkin. Maqola men ishimda foydalanadigan R-ning ba'zi xususiyatlari haqidagi hikoyalarimni dasturchilar hamkasblarim tomonidan hayajon bilan qabul qilishini bilganimdan keyin paydo bo'ldi. Agar siz bu haqda hamma narsani bilsangiz, vaqtingizni behuda sarflaganim uchun uzr so'rayman. Shu bilan birga, baham ko'rmoqchi bo'lgan narsangiz bo'lsa, sharhlarda foydali narsalarni tavsiya eting.

Skillbox tavsiya qiladi: Amaliy kurs "Python dasturchisi".

Sizga eslatib o'tamiz: "Habr" ning barcha o'quvchilari uchun - "Habr" promo-kodidan foydalangan holda har qanday Skillbox kursiga yozilishda 10 000 rubl chegirma.

almashtirish funktsiyasi

Menga switch() juda yoqadi. Aslida, bu boshqa o'zgaruvchining qiymatiga qarab qiymat tanlashda if iborasi uchun qulay stenografiya. Avvalgi tanlov asosida ma'lum ma'lumotlar to'plamini yuklashi kerak bo'lgan kod yozayotganimda buni ayniqsa foydali deb bilaman. Misol uchun, agar sizda hayvon deb nomlangan o'zgaruvchi bo'lsa va siz hayvon it, mushuk yoki quyon ekanligiga qarab ma'lum ma'lumotlar to'plamini tanlamoqchi bo'lsangiz, quyidagilarni yozing:

ma'lumotlar < — read.csv(
almashtirish (hayvon,
"it" = "dogdata.csv",
"mushuk" = "catdata.csv",
"quyon" = "rabbitdata.csv")
)

Bu xususiyat bir yoki bir nechta kirish menyusi bandiga qarab turli maʼlumotlar toʻplamlari yoki muhit fayllarini yuklashingiz kerak boʻlgan Shiny ilovalarida foydali boʻladi.

RStudio uchun tezkor tugmalar

Bu buzish R uchun emas, balki RStudio IDE uchun. Biroq, tezkor tugmalar har doim juda qulay bo'lib, matn kiritishda vaqtni tejash imkonini beradi. Mening sevimlilarim: %>% operatori uchun Ctrl+Shift+M va <- operatori uchun Alt+-.

Barcha tezkor tugmalarni ko'rish uchun RStudio-da Alt+Shift+K tugmalarini bosing.

flexdashboard to'plami

Shiny asboblar panelini tezda ishga tushirishingiz kerak bo'lganda, asboblar paneli to'plamidan yaxshiroq narsa yo'q. U HTML yorliqlari bilan ishlash imkoniyatini beradi, bu esa o'z navbatida yon panellar, qatorlar va ustunlar yaratishni oson va muammosiz qiladi. Shuningdek, sarlavha satridan foydalanish imkoniyati mavjud bo'lib, uni ilovaning turli sahifalarida joylashtirish, piktogrammalarni, Github-da yorliqlarni, elektron pochta manzillarini va boshqalarni qoldirish imkonini beradi.

Paket sizga Rmarkdown doirasida ishlashga imkon beradi, shuning uchun siz barcha ilovalarni bitta Rmd fayliga joylashtirishingiz va ularni turli serverlar va UI fayllari bo'ylab tarqatmasligingiz mumkin, masalan, shinydashboard yordamida. Murakkab narsa ustida ishlashdan oldin oddiy asboblar paneli prototipini yaratish kerak bo'lganda men flexdashboarddan foydalanaman. Bu xususiyat bir soat ichida prototip yaratish imkonini beradi.

req va R Shiny-da funktsiyalarni tasdiqlang

R Shiny-da ishlab chiqish chalkash bo'lishi mumkin, ayniqsa nima bo'layotganini tushunishni qiyinlashtiradigan g'alati xato xabarlarini olayotganingizda. Ammo vaqt o'tishi bilan Shiny rivojlanadi va yaxshilanadi, bu erda xatoning sababini tushunishga imkon beradigan ko'proq funktsiyalar paydo bo'ladi. Shunday qilib, req() nima bo'layotgani umuman tushunarsiz bo'lsa, muammoni "jim" xato bilan hal qiladi. Bu oldingi harakatlar bilan bog'liq UI elementlarini ko'rsatishga imkon beradi. Keling, misol bilan tushuntiramiz:

output$go_button < — porloq::renderUI({

# agar hayvon kiritilishi tanlangan bo'lsa, faqat ekran tugmasi

porloq::req(input$hayvon)

# displey tugmasi

porloq :: actionButton("otish",
joylashtirish ("O'tkazish", input$hayvon, "tahlil!")
)
})

validate() ko'rsatishdan oldin hamma narsani tekshiradi va xato xabarini chop etish imkoniyatini beradi - masalan, foydalanuvchi noto'g'ri faylni yuklagan:

# csv kiritish faylini oling

inFile < — input$file1
ma'lumotlar < — InFile$datapath

# jadvalni faqat itlar bo'lsa render

porloq::renderTable({
# bu mushuk yoki quyon emas, balki it fayli ekanligini tekshiring
porloq::validate(
need("It nomi" %da colnames(ma'lumotlar)),
"It nomi ustuni topilmadi - to'g'ri faylni yukladingizmi?"
)

ma'lumotlar
})

Ushbu xususiyatlarning barchasi haqida ko'proq ma'lumot bu erda topish mumkin.

Hisob ma'lumotlarini tizim muhitida o'zingiz uchun saqlash

Agar siz hisob ma'lumotlarini kiritishingizni talab qiladigan kodni almashishni rejalashtirmoqchi bo'lsangiz, o'z hisob ma'lumotlaringizni Github yoki boshqa xizmatda joylashtirishdan qochish uchun tizim muhitidan foydalaning. Misol joylashtirish:

Sys.setenv(
DSN = "ma'lumotlar bazasi_nomi",
UID = "Foydalanuvchi ID",
PASS = "Parol"
)

Endi siz muhit o'zgaruvchilari yordamida tizimga kirishingiz mumkin:

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

Ularni to'g'ridan-to'g'ri operatsion tizimda muhit o'zgaruvchilari sifatida o'rnatish yanada qulayroq (ayniqsa, ma'lumotlardan tez-tez foydalansangiz). Bunday holda, ular har doim mavjud bo'ladi va siz ularni kodda ko'rsatishingiz shart emas.

Styler yordamida tartibni avtomatlashtiring

Styler to'plami kodingizni tozalashga yordam beradi; unda kod uslubini avtomatik tarzda tartibli ko'rinishga keltirish uchun ko'plab imkoniyatlar mavjud. Muammoli skriptingizda styler::style_file() ni ishga tushirish kifoya. Paket tartibni tiklash uchun juda ko'p (lekin hamma narsani emas) qiladi.

R Markdown hujjatlarini parametrlash

Shunday qilib, siz ajoyib R Markdown hujjatini yaratdingiz, unda siz itlar haqidagi turli faktlarni tahlil qilasiz. Va keyin sizga xuddi shunday ishni qilish yaxshiroq bo'lardi, lekin faqat mushuklar bilan. Muammo yo'q, siz faqat bitta buyruq bilan mushuk hisobotlarini yaratishni avtomatlashtirishingiz mumkin. Buni amalga oshirish uchun siz faqat R markdown hujjatingizni parametrlashtirishingiz kerak.

Buni ko'rsatilgan hujjatdagi YAML sarlavhasi uchun parametrlarni o'rnatish va keyin qiymat parametrlarini o'rnatish orqali amalga oshirishingiz mumkin.

- sarlavha: "Hayvonlarni tahlil qilish"
muallif: "Kit MakNulti"
Sana: "21 mart 2019 yil"
chiqdi:
html_hujjat:
code_folding: "yashirish"
parametrlar:
hayvon_nomi:
qiymati: it
tanlovlar:
— It
— Mushuk
- Quyon
o'qish_yillari:
kiritish: slayder
min: 2000 yil
maksimal: 2019
qadam: 1
davra: 1
sep: "
qiymati: [2010, 2017] -

Endi siz hujjat kodidagi barcha oʻzgaruvchilarni params$hayvon_nomi va params$yillar_oʻquv yili sifatida roʻyxatdan oʻtkazishingiz mumkin. Keyin biz "Knit" ochiladigan menyusidan (yoki knit_with_parameters()) foydalanamiz va parametrlarni tanlashimiz mumkin.

Siz bilmagan 10 foydali R xususiyati

openjs

discoverjs - bu o'rnatilgan R kodi, intuitiv navigatsiya va slayd menyulari bilan ajoyib HTML taqdimotlarini yaratishga imkon beruvchi paket. HTML yorliqlari turli uslublar opsiyalari bilan ichki slayd tuzilishini tezda yaratishga imkon beradi. Xo'sh, HTML har qanday qurilmada ishlaydi, shuning uchun taqdimotni har bir telefon, planshet yoki noutbukda ochish mumkin. Ma'lumotni oshkor qilish paketni o'rnatish va uni YAML sarlavhasida chaqirish orqali sozlanishi mumkin. Mana bir misol:

- sarlavha: "Odamlar tahlili olamining chekkasini ochish"
muallif: "Kit MakNulti"
chiqdi:
discoverjs::revealjs_presentation:
markaz: ha
shablon: starwars.html
Mavzu: qora
Sana: “HR Analytics Meetup London – 18 yil 2019 mart”
resource_files:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Taqdimot manba kodi bu yerda e'lon qilingan, va o'zirpubs.com/keithmcnulty/hr_meetup_london'>taqdimot - bu erda.

Siz bilmagan 10 foydali R xususiyati

R Shiny-dagi HTML teglari

Aksariyat dasturchilar R Shiny-da mavjud bo'lgan HTML teglaridan to'liq foydalanmaydi. Ammo bu faqat 110 ta teg bo'lib, ular HTML funksiyasi yoki media tinglash uchun qisqa qo'ng'iroqni yaratishga imkon beradi. Misol uchun, men yaqinda tags$audio-dan vazifa bajarilganda foydalanuvchini ogohlantiruvchi "g'alaba" tovushini ijro etish uchun foydalandim.

Maqtov to'plami

Ushbu paketdan foydalanish juda oddiy, lekin foydalanuvchiga maqtovni ko'rsatish uchun kerak. Bu g'alati tuyuladi, lekin aslida ular buni yoqtirishadi.

Siz bilmagan 10 foydali R xususiyati

Skillbox tavsiya qiladi:

Manba: www.habr.com

a Izoh qo'shish