10 anvÀndbara funktioner i R som du kanske inte visste om

10 anvÀndbara funktioner i R som du kanske inte visste om

I R finns det gott om olika funktioner. Nedan kommer jag att lista tio av de mest intressanta, som mĂ„nga kanske inte kĂ€nner till. Artikeln kom till efter att jag upptĂ€ckte att mina berĂ€ttelser om vissa möjligheter i R, som jag anvĂ€nder i mitt arbete, blev entusiastiskt mottagna av programmerare jag kĂ€nner. Om du redan vet allt detta, ber jag om ursĂ€kt för den bortkastade tiden. Samtidigt, om du har nĂ„got att dela med dig av – ge gĂ€rna förslag pĂ„ nĂ„got anvĂ€ndbart i kommentarerna.

Skillbox rekommenderar: Praktisk kurs «Python-utvecklare».

PĂ„minnelse: för alla lĂ€sare av "Habr" — 10 000 rubel rabatt vid registrering för vilken kurs som helst pĂ„ Skillbox med rabattkoden "Habr".

switch-funktionen

Jag gillar verkligen switch(). Faktiskt Àr det en bekvÀm förkortning av if-operatorn för att vÀlja ett vÀrde baserat pÄ vÀrdet av en annan variabel. Jag tycker att detta Àr sÀrskilt anvÀndbart nÀr jag skriver kod som ska ladda en specifik datamÀngd baserat pÄ ett tidigare val. Till exempel, om det finns en variabel som heter animal och jag behöver vÀlja en specifik datamÀngd beroende pÄ om djuret Àr en hund, katt eller kanin, skriver jag sÄ hÀr:

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

Denna funktion kommer att vara anvÀndbar i Shiny-applikationer, dÀr jag behöver ladda olika datamÀngder eller miljöfiler beroende pÄ en eller flera input-menyer.

GenvÀgar för RStudio

Denna hack Ă€r inte sĂ„ mycket för R, utan för RStudio IDE. ÄndĂ„ Ă€r genvĂ€gar alltid mycket praktiska och sparar tid vid textinmatning. Mina favoriter Ă€r Ctrl+Shift+M för %>% och Alt+- för <-.

För att se alla genvÀgar, tryck helt enkelt pÄ Alt+Shift+K i RStudio.

Flexdashboard-paketet

NÀr jag snabbt behöver starta en Shiny-instrumentpanel finns det inget bÀttre Àn dashboard-paketet. Det ger möjlighet att arbeta med HTML-genvÀgar, vilket i sin tur gör det enkelt och smidigt att skapa sidopaneler, rader och kolumner. Det finns ocksÄ möjlighet att anvÀnda title bar, vilket lÄter mig placera den pÄ olika sidor i applikationen, och lÀmna ikoner, genvÀgar pÄ Github, e-postadresser och mycket mer.

Paketet gör det möjligt att arbeta inom Rmarkdown, sÄ att man kan placera alla appar i en och samma Rmd-fil istÀllet för att sprida dem över olika servrar och UI-filer, som görs med shinydashboard till exempel. Jag anvÀnder flexdashboard varje gÄng jag behöver skapa en enkel prototyp av en instrumentpanel innan jag börjar arbeta med nÄgot mer komplext. Denna funktion möjliggör att skapa en prototyp pÄ en timme.

Funktionerna req och validate i R Shiny

Utveckling i R Shiny kan vara förvirrande, sÀrskilt nÀr man hela tiden fÄr konstiga felmeddelanden som gör det omöjligt att förstÄ vad som hÀnder. Men med tiden utvecklas och förbÀttras Shiny, och fler och fler funktioner dyker upp som hjÀlper till att förstÄ orsaken till fel. Till exempel löser req() problemet med "tysta" fel dÀr det överhuvudtaget Àr oklart vad som Àr fel. Med den kan man visa anvÀndargrÀnssnittselement kopplade till tidigare ÄtgÀrder. LÄt oss förklara med ett exempel:

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() kontrollerar allt före rendering och ger möjlighet att visa ett felmeddelande, till exempel att anvÀndaren har laddat upp en felaktig fil:

# 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
})

Mer detaljerad information om alla dessa funktioner kan hittas hÀr.

Att lagra dina inloggningsuppgifter för dig sjÀlv i systemets miljö

Om du planerar att dela kod dÀr inloggningsuppgifter krÀvs - anvÀnd systemmiljön för att undvika att placera dina inloggningsuppgifter pÄ Github eller en annan tjÀnst. Exempel pÄ hur man gör:

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

Nu kan man logga in med hjÀlp av miljövariabler:

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

Ännu mer bekvĂ€mt (speciellt om du ofta anvĂ€nder dessa data) Ă€r att stĂ€lla in dem som miljövariabler direkt i operativsystemet. PĂ„ sĂ„ sĂ€tt kommer de alltid att vara tillgĂ€ngliga och du behöver inte ange dem i koden.

Automatisering av tidyverse med styler

Att rengöra koden kan underlÀttas av paketet styler, som har mÄnga möjligheter för automatisk stiljustering av koden i tidyverse. Det enda som behövs Àr att köra styler::style_file() för ditt problematiska skript. Paketet kommer att göra mycket (men inte allt) för att strukturera upp.

Parameterisering av R Markdown-dokument

SÄ du har skapat ett utmÀrkt R Markdown-dokument dÀr du analyserar olika fakta om hundar. Och dÄ kommer du pÄ att det skulle vara bÀttre att göra samma arbete, men bara med katter. Inga problem, du kan automatisera skapandet av katt-rapporter med bara en enda kommando. För detta behöver du bara parameterisera ditt R Markdown-dokument.

Detta kan göras genom att ange parametrar för YAML-rubriken i det angivna dokumentet, och sedan - vÀrdesparametrar.

— title: «Djuranalys»
author: «Keith McNulty»
date: «21 mars 2019»
output:
html_document:
code_folding: «dölj»
params:
animal_name:
value: Hund
choices:
— Hund
— Katt
— Kanin
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—

Nu kan du skriva alla variabler i koddokumentet som params$animal_name och params$years_of_study. Sedan anvÀnder vi rullgardinsmenyn Knit (eller knit_with_parameters()) för att fÄ möjlighet att vÀlja parametrar.

10 anvÀndbara funktioner i R som du kanske inte visste om

revealjs

revealjs Àr ett paket som möjliggör skapandet av fantastiska HTML-presentationer med inbÀddad R-kod, intuitiv navigering och slide-menyer. HTML-genvÀgar gör det möjligt att snabbt skapa en inbÀddad struktur av slides med olika stilalternativ. Och HTML kan köras pÄ vilken enhet som helst, sÄ presentationen kan öppnas pÄ alla telefoner, surfplattor eller bÀrbara datorer. Informationsavslöjande kan konfigureras genom att installera paketet och kalla pÄ det i YAML-rubriken. HÀr Àr ett exempel:

— title: «Utforska kanten av People Analytics-universumet»
author: «Keith McNulty»
output:
revealjs::revealjs_presentation:
center: ja
template: starwars.html
theme: svart
date: «HR Analytics Meetup London — 18 mars 2019»
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—

KĂ€llkoden för presentationen Ă€r hĂ€r, och sjĂ€lva <a href=«rpubs.com/keithmcnulty/hr_meetup_london‘>presentationen Ă€r hĂ€r.

10 anvÀndbara funktioner i R som du kanske inte visste om

HTML-taggar i R Shiny

De flesta programmerare utnyttjar inte alla fördelar med HTML-taggarna som finns i R Shiny. Det Àr bara 110 taggar som ger möjlighet att skapa korta anrop för HTML-funktioner eller Äterge media. Till exempel anvÀnde jag nyligen tags$audio för att spela upp ett "vinst"-ljud som varnade anvÀndaren om att uppgiften var slutförd.

Paketet praise

Det Àr mycket enkelt att anvÀnda detta paket, och det behövs för att ge beröm till anvÀndaren. Det kan verka konstigt, men de gillar det verkligen.

10 anvÀndbara funktioner i R som du kanske inte visste om

Skillbox rekommenderar:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster