10 užitečných funkcí R, o kterých jste možná nevěděli

10 užitečných funkcí R, o kterých jste možná nevěděli

V R je spousta různých funkcí. Níže uvádím deset nejzajímavějších, o kterých mnozí mohli nevědět. Článek vznikl poté, co jsem zjistil, že moje vyprávění o některých možnostech R, které používám v práci, vzbudilo nadšení mezi mými známými programátory. Pokud už o tom všechno víte, omlouvám se za ztrátu času. Zároveň, pokud máte něco na doplnění - doporučte něco užitečného v komentářích.

Skillbox doporučuje: Praktický kurz „Python vývojář“.

Připomínáme: pro všechny čtenáře "Habra" – sleva 10 000 korun při registraci na jakýkoli kurz Skillbox s promokódem "Habr".

Funkce switch

Moc se mi líbí switch(). V podstatě je to pohodlné zkrácení příkazu if pro volbu hodnoty podle hodnoty jiné proměnné. Považuji to za obzvlášť užitečné, když píšu kód, který má načíst určitý soubor dat podle předchozího výběru. Například, pokud mám proměnnou s názvem animal a potřebuji vybrat určitý soubor dat podle toho, zda je zvíře pes, kočka nebo králík, píšu to takto:

data < - read.csv(
switch(animal,
„dog“ = „dogdata.csv“,
„cat“ = „catdata.csv“,
„rabbit“ = „rabbitdata.csv“)
)

Tato funkce bude užitečná v aplikacích Shiny, kde je potřeba načíst různé soubory dat nebo soubory prostředí podle jedné nebo více voleb z menu.

Klávesové zkratky pro RStudio

Tento trik není tolik pro R, jako spíše pro RStudio IDE. Nicméně klávesové zkratky jsou vždy velmi užitečné a šetří čas při psaní textu. Moje oblíbené jsou Ctrl+Shift+M pro operátor %>% a Alt+- pro operátor <-.

Pro zobrazení všech klávesových zkratek stačí stisknout Alt+Shift+K v RStudio.

Balíček flexdashboard

Když potřebujete rychle spustit panel nástrojů Shiny, není nic lepšího než balíček dashboard. Nabízí možnost pracovat se zkratkami HTML, které na oplátku umožňují snadno a bez problémů vytvářet postranní panely, řádky a sloupce. Je také možné použít title bar, který umožňuje umístit jej na různých stránkách aplikace, přidávat ikony, zkratky na Github, emailové adresy a mnohem více.

Balíček umožňuje pracovat v Rmarkdownu, takže je možné umístit všechny aplikace do jednoho souboru Rmd, místo aby je bylo nutné rozdělovat na různé servery a UI soubory, jak to například dělá shinydashboard. Velmi často používám flexdashboard, když potřebuji vytvořit jednoduchý prototyp řídicího panelu, než začnu pracovat na něčem složitém. Tato funkce umožňuje vytvořit prototyp během hodiny.

Funkce req a validate v R Shiny

Vývoj v R Shiny může být matoucí, zejména když neustále dostáváte divné chybové zprávy, které vám nijak nepomohou pochopit, co se děje. Ale s časem Shiny roste a vyvíjí se, objevuje se stále více funkcí, které vám umožňují zjistit příčinu chyby. Tak např. req() řeší problém s „tichou“ chybou, kdy není vůbec jasné, v čem je problém. Pomocí ní můžete zobrazit prvky uživatelského rozhraní spojené s předchozími akcemi. Pojďme si to vysvětlit na příkladu:

output$go_button < — shiny::renderUI({

# only display button if an animal input has been chosen

shiny::req(input$animal)

# display button

shiny::actionButton("go",
paste("Conduct", input$animal, "analysis!")
)
})

validate() kontroluje vše před renderováním a dává možnost vypsat chybovou zprávu — například, že uživatel nahrál nesprávný soubor:

# get csv input file

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

# render table only if it is dogs

shiny::renderTable({
# check that it is the dog file, not cats or rabbits
shiny::validate(
need("Dog Name" %in% colnames(data)),
"Dog Name column not found — did you load the right file?"
)

data
})

Podrobnější informace o všech těchto funkcích možno najít zde.

Ukládání svých přihlašovacích údajů do systémového prostředí

Pokud plánujete sdílet kód, kde je potřeba zadat přihlašovací údaje, — použijte systémové prostředí, abyste se vyhnuli umístění vlastních přihlašovacích údajů na Github nebo jinou službu. Příklad umístění:

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

Nyní se můžete přihlásit pomocí proměnných prostředí:

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

Ještě pohodlnější (zejména pokud jsou data často používána) je je nastavit jako proměnné prostředí přímo v operačním systému. V takovém případě budou vždy dostupné a není nutné je uvádět v kódu.

Automatizace tidyverse se styler

Úklid kódu může usnadnit balíček styler, který nabízí mnoho možností pro automatické formátování kódu v tidyverse. Stačí spustit styler::style_file() pro váš problematický skript. Balíček udělá hodně (ale ne vše) pro to, aby dal věci do pořádku.

Parametrizace dokumentů R Markdown

Takže jste vytvořili skvělý dokument R Markdown, ve kterém analyzujete různé informace o psech. A pak vás napadlo, že by bylo lepší provést stejnou práci, ale pouze s kočkami. To není problém, můžete automatizovat vytváření zpráv o kočkách pomocí jedné příkazu. Stačí parametrizovat váš dokument R Markdown.

Toho lze dosáhnout nastavením parametrů pro YAML hlavičku ve zmíněném dokumentu a poté - hodnoty parametrů.

— title: „Analýza zvířat“
author: „Keith McNulty“
date: „21. března 2019“
output:
html_document:
code_folding: „hide“
params:
animal_name:
value: Dog
choices:
— Dog
— Cat
— Rabbit
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—

Nyní můžete zapsat všechny proměnné v kódu dokumentu jako params$animal_name a params$years_of_study. Poté využijeme rozbalovací nabídku Knit (nebo knit_with_parameters()) a získáme možnost vybírat parametry.

10 užitečných funkcí R, o kterých jste možná nevěděli

revealjs

revealjs je balíček, který umožňuje vytvářet skvělé HTML prezentace s vloženým R kódem, intuitivním ovládáním a menu snímků. HTML zkratky umožňují rychle vytvářet vnořenou strukturu snímků s různými stylistickými variantami. No a HTML se spustí na jakémkoli zařízení, takže prezentaci si mohou otevřít na každém telefonu, tabletu nebo notebooku. Odkrytí informací lze nastavit po instalaci balíčku a vyvolání v YAML hlavičce. Zde je příklad:

— title: „Zkoumání okraje vesmíru People Analytics“
author: „Keith McNulty“
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: „HR Analytics Meetup London — 18. března 2019“
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—

Zdrojový kód prezentace je umístěn zde, a samotná <a href=„rpubs.com/keithmcnulty/hr_meetup_london‘>prezentace — zde.

10 užitečných funkcí R, o kterých jste možná nevěděli

HTML tagy v R Shiny

Většina programátorů nevyužívá všechny výhody HTML tagů, které jsou k dispozici v R Shiny. Je jich totiž celkem 110, které umožňují vytvořit krátký vstup pro HTML funkci nebo reprodukci média. Například nedávno jsem použil tags$audio k přehrání „výherního“ zvuku, který upozornil uživatele na dokončení úkolu.

Balíček praise

Použití tohoto balíčku je velmi snadné a slouží k ocenění uživatele. Zdá se to zvláštní, ale ve skutečnosti se jim to líbí.

10 užitečných funkcí R, o kterých jste možná nevěděli

Skillbox doporučuje:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster