10 Хусусиятҳои муфиди R, ки шумо дар бораи он намедонед

10 Хусусиятҳои муфиди R, ки шумо дар бораи он намедонед

R пур аз вазифаҳои гуногун аст. Дар зер даҳ нафари ҷолибтарини онҳоро пешкаш мекунам, ки шояд бисёриҳо намедонанд. Мақола пас аз он пайдо шуд, ки ман фаҳмидам, ки ҳикояҳои ман дар бораи баъзе хусусиятҳои R, ки ман дар кори худ истифода мебарам, аз ҷониби барномасозони ҳамимон бо шавқ пазируфта шуданд. Агар шумо аллакай ҳама чизро дар ин бора медонед, пас ман барои беҳуда сарф кардани вақти шумо бахшиш мепурсам. Дар айни замон, агар шумо чизе барои мубодила дошта бошед, дар шарҳҳо чизи муфидро тавсия диҳед.

Skillbox тавсия медиҳад: Курси амалӣ "Таҳиягари Python".

Мо ба шумо хотиррасон мекунем: барои ҳамаи хонандагони "Habr" - тахфифи 10 000 рубл ҳангоми номнавис шудан ба курсҳои Skillbox бо истифода аз рамзи таблиғотии "Habr".

функсияи гузариш

Ман дар ҳақиқат, дар ҳақиқат мехоҳам switch(). Дарвоқеъ, ин як стенографияи мувофиқ барои изҳороти if ҳангоми интихоби арзиш дар асоси арзиши тағирёбандаи дигар аст. Ман инро махсусан вақте муфид меёбам, ки ман код менависам, ки бояд маҷмӯи мушаххаси маълумотро дар асоси интихоби қаблӣ бор кунад. Масалан, агар шумо тағирёбанда бо номи ҳайвон дошта бошед ва шумо хоҳед, ки маҷмӯи мушаххаси маълумотро вобаста ба он ки ҳайвон саг, гурба ё харгӯш аст, интихоб кунед, инро нависед:

маълумот < — read.csv(
гузариш (ҳайвон,
"саг" = "dogdata.csv",
"cat" = "catdata.csv",
"харгӯш" = "rabbitdata.csv")
)

Ин хусусият дар барномаҳои Shiny муфид хоҳад буд, ки дар он шумо бояд маҷмӯи додаҳо ё файлҳои муҳити зистро вобаста ба як ё якчанд ҷузъҳои менюи вуруд бор кунед.

Тугмаҳои гарм барои RStudio

Ин хак на он қадар барои R, балки барои RStudio IDE аст. Бо вуҷуди ин, тугмаҳои гарм ҳамеша хеле қулай буда, ба шумо имкон медиҳанд, ки вақти ворид кардани матнро сарфа кунед. Дӯстдоштаи ман Ctrl+Shift+M барои оператори %>% ва Alt+- барои оператори <- мебошанд.

Барои дидани ҳамаи тугмаҳо, танҳо Alt+Shift+K-ро дар RStudio пахш кунед.

бастаи flexdashboard

Вақте ки ба шумо лозим аст, ки панели Shiny-и худро зуд оғоз кунед, чизе беҳтар аз бастаи панели идоракунӣ нест. Он қобилияти кор бо миёнабурҳои HTMLро таъмин мекунад, ки дар навбати худ сохтани панелҳои паҳлӯҳо, сатрҳо ва сутунҳоро осон ва бе мушкилот мегардонад. Инчунин қобилияти истифодаи сатри унвон мавҷуд аст, ки ба шумо имкон медиҳад онро дар саҳифаҳои гуногуни барнома ҷойгир кунед, нишонаҳо, миёнабурҳо дар Github, суроғаҳои почтаи электронӣ ва ғайраро гузоред.

Маҷмӯа ба шумо имкон медиҳад, ки дар чаҳорчӯбаи Rmarkdown кор кунед, аз ин рӯ шумо метавонед ҳама барномаҳоро дар як файли Rmd ҷойгир кунед ва онҳоро дар серверҳои гуногун ва файлҳои UI паҳн накунед, масалан, бо истифода аз shinydashboard. Ман панели flexdashboard-ро истифода мебарам, вақте ки ба ман лозим аст, ки прототипи оддии панели идоракуниро пеш аз кор кардан дар чизи мураккаб созам. Ин хусусият ба шумо имкон медиҳад, ки дар давоми як соат прототип эҷод кунед.

req ва тасдиқи функсияҳо дар R Shiny

Таҳия дар R Shiny метавонад печида бошад, хусусан вақте ки шумо паёмҳои хатогиҳои аҷиберо мегиред, ки фаҳмидани ҳодисаро душвор мегардонад. Аммо бо мурури замон, Shiny инкишоф ва такмил меёбад, дар ин ҷо функсияҳои бештар ва бештар пайдо мешаванд, ки ба шумо имкон медиҳанд сабаби хатогиро фаҳмед. Ҳамин тавр, req() мушкилотро бо хатои "хомӯш" ҳал мекунад, вақте ки умуман маълум нест, ки чӣ рӯй дода истодааст. Он ба шумо имкон медиҳад, ки унсурҳои UI-ро, ки бо амалҳои қаблӣ алоқаманданд, нишон диҳед. Биёед бо як мисол тавзеҳ диҳем:

output$go_button < — shiny::renderUI({

# танҳо тугмаи намоишро нишон диҳед, агар вуруди ҳайвонот интихоб шуда бошад

тобнок :: req (ворид $ ҳайвон)

# тугмаи намоиш

тобнок :: actionButton("рафтан",
часбонед("Рафтиш", input$animal, "таҳлил!")
)
})

validate() пеш аз намоиш ҳама чизро тафтиш мекунад ва ба шумо имкон медиҳад, ки паёми хатогиро чоп кунед - масалан, корбар файли нодурустро бор кардааст:

# файли вуруди csv гиред

inFile < — input$file1
маълумот < — inFile$datapath

# ҷадвалро нишон диҳед, агар он сагҳо бошад

тобнок ::renderTable({
# санҷед, ки он файли саг аст, на гурбаҳо ё харгӯшҳо
дурахшон :: тасдиқ (
need("Номи саг" %дар% colnames(маълумот)),
"Сутуни номи саг ёфт нашуд - оё шумо файли дурустро бор кардаед?"
)

маълумот
})

Маълумоти бештар дар бораи ҳамаи ин хусусиятҳо дар инҷо пайдо кардан мумкин аст.

Нигоҳ доштани маълумоти эътимоднома барои худ дар муҳити система

Агар шумо нақшаи мубодилаи кодеро дошта бошед, ки аз шумо ворид кардани маълумоти эътимоднокро талаб мекунад, муҳити системаро истифода баред, то ки маълумоти худро дар Github ё хидмати дигар ҷойгир накунед. Намунаи ҷойгиркунӣ:

Sys.setenv(
DSN = "номи_базаи маълумот",
UID = "Идентификатсияи корбар",
PASS = "Парол"
)

Акнун шумо метавонед бо истифода аз тағирёбандаҳои муҳити зист ворид шавед:

db < — DBI::dbConnect(
drv = odbc :: odbc (),
dsn = Sys.getenv("DSN"),
uid = Sys.getenv ("UID"),
pwd = Sys.getenv ("Гузариш")
)

Ин боз ҳам қулайтар аст (махсусан агар шумо маълумотро зуд-зуд истифода баред) онҳоро ҳамчун тағирёбандаҳои муҳити зист мустақиман дар системаи оператсионӣ муқаррар кунед. Дар ин ҳолат, онҳо ҳамеша дастрас хоҳанд буд ва ба шумо лозим нест, ки онҳоро дар код нишон диҳед.

Бо стиллер ба таври автоматикӣ тартиб диҳед

Бастаи styler метавонад ба шумо дар тоза кардани коди худ кӯмак кунад; он дорои имконоти зиёде барои ба таври худкор ворид кардани услуби код ба ободкорӣ мебошад. Танҳо ба шумо лозим аст, ки дар скрипти мушкили худ styler::style_file() -ро иҷро кунед. Баста барои барқарор кардани тартибот бисёр кор хоҳад кард (вале на ҳама чиз).

Параметризатсияи ҳуҷҷатҳои R Markdown

Ҳамин тавр, шумо як ҳуҷҷати бузурги R Markdown сохтаед, ки дар он шумо далелҳои гуногунро дар бораи сагҳо таҳлил мекунед. Ва он гох ба сарат меояд, ки хамин корро хам кардан бехтар мебуд, вале танхо бо гурбахо. Мушкил нест, шумо метавонед бо як фармон эҷоди гузоришҳои гурбаҳоро автоматӣ кунед. Барои ин, шумо танҳо бояд ҳуҷҷати R markdown-и худро параметр кунед.

Шумо метавонед ин корро бо гузоштани параметрҳо барои сарлавҳаи YAML дар ҳуҷҷати муайяншуда иҷро кунед ва сипас параметрҳои арзишро муқаррар кунед.

- унвон: "Таҳлили ҳайвонот"
муаллиф: "Кит МакНалти"
Сана: "21 марти 2019"
маҳсулот
html_document:
code_folding: "пинҳон кардан"
параметрҳо:
Номи ҳайвонот:
арзиш: саг
интихобҳо:
— Саг
— Гурба
- Харгӯш
солҳои_таҳсил:
вуруд: слайдер
дақ: 2000
макс: 2019
қадам: 1
давр: 1
сентябрь:"
арзиш: [2010, 2017] -

Акнун шумо метавонед ҳамаи тағирёбандаҳоро дар коди ҳуҷҷат ҳамчун params$animal_name ва params$years_of_study сабт кунед. Пас мо менюи афтанда Knit (ё knit_with_parameters())-ро истифода мебарем ва параметрҳоро интихоб карда метавонем.

10 Хусусиятҳои муфиди R, ки шумо дар бораи он намедонед

ошкор js

discoverjs як бастаест, ки ба шумо имкон медиҳад презентатсияҳои олии HTML бо рамзи R дарунсохт, навигасияи интуитивӣ ва менюҳои слайдҳо эҷод кунед. Миёнабурҳои HTML ба шумо имкон медиҳанд, ки сохтори слайдҳои лонаро бо имконоти гуногуни ороиш зуд созед. Хуб, HTML дар ҳама гуна дастгоҳ кор мекунад, бинобар ин презентатсияро дар ҳар телефон, планшет ё ноутбук кушодан мумкин аст. Ифшои иттилоотро тавассути насб кардани баста ва даъват кардани он дар сарлавҳаи YAML танзим кардан мумкин аст. Инак як мисол:

- сарлавҳа: "Экспорти канори ҷаҳони таҳлилии одамон"
муаллиф: "Кит МакНалти"
маҳсулот
showjs::revealjs_presentation:
марказ: бале
Шаблон: starwars.html
мавзӯъ: сиёҳ
Сана: "Meetup HR Analytics London - 18 марти 2019"
resource_files:
— 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, ки шумо дар бораи он намедонед

Тегҳои HTML дар R Shiny

Аксари барномасозон аз барчаспҳои HTML, ки R Shiny дорад, пурра истифода намебаранд. Аммо инҳо танҳо 110 тег мебошанд, ки имкон медиҳанд, ки занги кӯтоҳ барои функсияи HTML ё бозикунии медиа эҷод карда шавад. Масалан, ман ба наздикӣ tags$audio-ро барои навохтани садои "ғалаба" истифода кардам, ки ҳангоми анҷоми вазифа корбарро огоҳ мекард.

Бастаи таҳсин

Истифодаи ин баста хеле содда аст, аммо барои нишон додани ситоиш ба корбар зарур аст. Ин аҷиб ба назар мерасад, аммо дар асл ба онҳо маъқул аст.

10 Хусусиятҳои муфиди R, ки шумо дар бораи он намедонед

Skillbox тавсия медиҳад:

Манбаъ: will.com

Илова Эзоҳ