10 användbara R-funktioner som du kanske inte känner till

10 användbara R-funktioner som du kanske inte känner till

R är full av en mängd olika funktioner. Nedan kommer jag att ge tio av de mest intressanta av dem, som många kanske inte känner till. Artikeln dök upp efter att jag upptäckte att mina berättelser om några av funktionerna i R som jag använder i mitt arbete mottogs entusiastiskt av andra programmerare. Om du redan vet allt om detta ber jag om ursäkt för att jag slösat bort din tid. Samtidigt, om du har något att dela, rekommendera något användbart i kommentarerna.

Skillbox rekommenderar: Praktisk kurs "Python-utvecklare".

Påminnelse: för alla läsare av "Habr" - en rabatt på 10 000 rubel när du anmäler dig till någon Skillbox-kurs med hjälp av "Habr"-kampanjkoden.

växlingsfunktion

Jag gillar verkligen switch(). Faktum är att det är en bekväm förkortning för en if-sats när man väljer 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 behöver ladda en specifik uppsättning data baserat på ett tidigare urval. Till exempel, om du har en variabel som heter djur och du vill välja en specifik uppsättning data beroende på om djuret är en hund, en katt eller en kanin, skriv detta:

data < — read.csv(
switch(djur,
"hund" = "hunddata.csv",
"cat" = "catdata.csv",
"rabbit" = "rabbitdata.csv")
)

Den här funktionen kommer att vara användbar i Shiny-applikationer där du behöver ladda olika datamängder eller miljöfiler beroende på en eller flera inmatningsmenyalternativ.

Snabbtangenter för RStudio

Detta hack är inte så mycket för R, utan för RStudio IDE. Snabbtangenter är dock alltid väldigt bekväma, vilket gör att du kan spara tid när du skriver in text. Mina favoriter är Ctrl+Skift+M för operatorn %>% och Alt+- för operatorn <-.

För att se alla snabbtangenter, tryck helt enkelt på Alt+Skift+K i RStudio.

flexdashboard-paket

När du snabbt behöver starta din Shiny instrumentpanel finns det inget bättre än instrumentpanelspaketet. Det ger möjlighet att arbeta med HTML-genvägar, som i sin tur gör det enkelt och problemfritt att skapa sidofält, rader och kolumner. Det finns också möjligheten att använda en titelrad, som låter dig placera den på olika sidor i applikationen, lämna ikoner, genvägar på Github, e-postadresser och mycket mer.

Paketet låter dig arbeta inom ramen för Rmarkdown, så du kan placera alla applikationer i en Rmd-fil, och inte distribuera dem över olika servrar och UI-filer, som man till exempel gör med hjälp av shinydashboard. Jag använder flexdashboard när jag behöver skapa en enkel instrumentpanelprototyp innan jag arbetar med något komplext. Denna funktion låter dig skapa en prototyp inom en timme.

begära och validera funktioner i R Shiny

Att utveckla i R Shiny kan vara förvirrande, särskilt när du hela tiden får konstiga felmeddelanden som gör det svårt att förstå vad som händer. Men med tiden, Shiny utvecklas och förbättras, fler och fler funktioner dyker upp här som gör att du kan förstå orsaken till felet. Så req() löser problemet med ett "tyst" fel, när det i allmänhet inte är klart vad som händer. Det låter dig visa UI-element associerade med tidigare åtgärder. Låt oss förklara med ett exempel:

output$go_button < — shiny::renderUI({

# endast visningsknapp om en djurinmatning har valts

shiny::req(input$animal)

# displayknapp

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

validate() kontrollerar allt innan rendering och ger dig möjlighet att skriva ut ett felmeddelande - till exempel att användaren laddade upp fel fil:

# hämta csv-indatafil

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

# rendera tabellen endast om det är hundar

shiny::renderTable({
# kontrollera att det är hundfilen, inte katter eller kaniner
glänsande::validera(
need("Hundnamn" %i% kolnamn(data)),
"Dog Name-kolumnen hittades inte - laddade du in rätt fil?"
)

datum
})

Mer information om alla dessa funktioner finns här.

Lagra dina referenser för dig själv i systemmiljön

Om du planerar att dela kod som kräver att du anger referenser, använd systemmiljön för att undvika att vara värd för dina egna referenser på Github eller någon annan tjänst. Exempel på placering:

Sys.setenv(
DSN = "databasnamn",
UID = "Användar-ID",
PASS = "Lösenord"
)

Nu kan du logga in med miljövariabler:

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

Det är ännu bekvämare (speciellt om du använder data ofta) att ställa in dem som miljövariabler direkt i operativsystemet. I det här fallet kommer de alltid att vara tillgängliga och du behöver inte ange dem i koden.

Automatisera tidyverse med styler

Stylerpaketet kan hjälpa dig att rensa upp din kod, det har många alternativ för att automatiskt föra kodstilen i ordning. Allt du behöver göra är att köra styler::style_file() på ditt problematiska skript. Paketet kommer att göra mycket (men inte allt) för att återställa ordningen.

Parametrering av R Markdown-dokument

Så du har skapat ett fantastiskt R Markdown-dokument där du analyserar olika fakta om hundar. Och då kommer det upp för dig att det vore bättre att göra samma arbete, men bara med katter. Inga problem, du kan automatisera skapandet av kattrapporter med bara ett kommando. För att göra detta behöver du bara parametrisera ditt R markdown-dokument.

Du kan göra detta genom att ställa in parametrar för YAML-huvudet i det angivna dokumentet och sedan ställa in värdeparametrarna.

— titel: "Djuranalys"
författare: "Keith McNulty"
datum: "21 mars 2019"
produktion:
html_document:
code_folding: "gömma"
params:
djurnamn:
värde: Hund
val:
- Hund
-Katt
— Kanin
studieår:
ingång: reglage
min: 2000
max: 2019
steg 1
omgång 1
sep: "
värde: [2010, 2017] —

Nu kan du registrera alla variabler i dokumentkoden som params$djurnamn och params$studieår. Sedan använder vi rullgardinsmenyn Knit (eller knit_with_parameters()) och kan välja parametrar.

10 användbara R-funktioner som du kanske inte känner till

avslöjar

revealjs är ett paket som låter dig skapa fantastiska HTML-presentationer med inbyggd R-kod, intuitiv navigering och bildmenyer. HTML-genvägar låter dig snabbt skapa en kapslad bildstruktur med olika stilalternativ. Tja, HTML kommer att köras på vilken enhet som helst, så presentationen kan öppnas på varje telefon, surfplatta eller bärbar dator. Informationsutlämnande kan konfigureras genom att installera paketet och anropa det i YAML-huvudet. Här är ett exempel:

— titel: "Utforska kanten av People Analytics Universe"
författare: "Keith McNulty"
produktion:
revealjs::revealjs_presentation:
mitten: ja
mall:starwars.html
tema: svart
datum: "HR Analytics Meetup London – 18 mars 2019"
resursfiler:
— darth.png
- deathstar.png
- hanchewy.png
- millennium.png
- r2d2-threepio.png
-starwars.html
—starwars.png
—stormtrooper.png
-

Presentationens källkod postat här, och sig självrpubs.com/keithmcnulty/hr_meetup_london'>presentation - här.

10 användbara R-funktioner som du kanske inte känner till

HTML-taggar i R Shiny

De flesta programmerare drar inte full nytta av HTML-taggarna som R Shiny har. Men det är bara 110 taggar, som gör det möjligt att skapa ett kort anrop för en HTML-funktion eller mediauppspelning. Till exempel använde jag nyligen tags$audio för att spela ett "seger"-ljud som varnade användaren när en uppgift var slutförd.

Berömpaket

Att använda detta paket är väldigt enkelt, men det behövs för att visa beröm till användaren. Det verkar konstigt, men de gillar det faktiskt.

10 användbara R-funktioner som du kanske inte känner till

Skillbox rekommenderar:

Källa: will.com

Lägg en kommentar