10 funzioni utili di R che potresti non conoscere

10 funzioni utili di R che potresti non conoscere

In R ci sono tantissime funzioni diverse. Di seguito presenterò dieci delle più interessanti, di cui molti potrebbero non essere a conoscenza. Questo articolo è nato dopo aver scoperto che le mie spiegazioni su alcune funzionalità di R che utilizzo nel lavoro vengono accolte con entusiasmo da programmatori conoscenti. Se già sapete tutto ciò, mi scuso per il tempo sprecato. Allo stesso tempo, se avete qualcosa da condividere, vi invito a suggerire qualcosa di utile nei commenti.

Skillbox consiglia: Corso pratico «Sviluppatore Python».

Ricordiamo: per tutti i lettori di «Habr» — sconto di 10.000 rubli per l'iscrizione a qualsiasi corso Skillbox con il codice promozionale «Habr».

Funzione switch

Mi piace molto, moltissimo switch(). Infatti, è un comodo abbreviazione dell'operatore if per scegliere un valore in base al valore di un'altra variabile. Trovo questo particolarmente utile quando scrivo codice che deve caricare un determinato set di dati in base a una selezione precedente. Ad esempio, se c'è una variabile chiamata animal e si deve scegliere un certo set di dati a seconda che l'animale sia un cane, un gatto o un coniglio, si scrive così:

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

Questa funzionalità sarà utile nelle applicazioni Shiny, dove è necessario caricare diversi set di dati o file di ambiente in base a uno o più elementi di menu di input.

Scorciatoie da tastiera per RStudio

Questo trucco non è tanto per R, quanto per l'IDE RStudio. Tuttavia, le scorciatoie da tastiera sono sempre molto utili, consentendo di risparmiare tempo nella digitazione. I miei preferiti sono Ctrl+Shift+M per l'operatore %>% e Alt+- per l'operatore <-.

Per visualizzare tutte le scorciatoie da tastiera, basta premere Alt+Shift+K in RStudio.

Pacchetto flexdashboard

Quando è necessario avviare rapidamente un dashboard Shiny, non c'è niente di meglio del pacchetto dashboard. Offre la possibilità di lavorare con i collegamenti HTML, che a loro volta consentono di creare facilmente e senza problemi barre laterali, righe e colonne. C'è anche la possibilità di utilizzare la title bar, che consente di posizionarla su diverse pagine dell'app, mantenendo icone, collegamenti a GitHub, indirizzi email e molto altro.

Il pacchetto consente di lavorare all'interno di Rmarkdown, quindi puoi collocare tutte le applicazioni in un unico file Rmd, anziché distribuirle su diversi server e file UI, come avviene, ad esempio, con shinydashboard. Uso sempre flexdashboard quando ho bisogno di creare un prototipo semplice di un cruscotto, prima di iniziare a lavorare su qualcosa di più complesso. Questa funzione consente di creare un prototipo in un'ora.

Le funzioni req e validate in R Shiny

Sviluppare in R Shiny può confondere, soprattutto quando si ricevono costantemente messaggi di errore strani che non permettono di capire cosa stia succedendo. Ma col passare del tempo Shiny evolve e si migliora, con sempre più funzioni che aiutano a capire la causa degli errori. Così, req() risolve il problema dell'errore “silenzioso”, quando non si capisce affatto qual è il problema. Con essa è possibile visualizzare gli elementi dell'interfaccia utente legati alle azioni precedenti. Spieghiamo con un esempio:

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() verifica tutto prima del rendering e consente di visualizzare un messaggio di errore — ad esempio, informando che l'utente ha caricato un file errato:

# 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)),
"Colonna 'Dog Name' non trovata — hai caricato il file giusto?"
)

data
})

Per maggiori dettagli su tutte queste funzioni puoi trovarli qui.

Conservare le proprie credenziali nell'ambiente di sistema

Se prevedi di condividere il codice, dove è necessario inserire i dati di accesso, utilizza l'ambiente di sistema per evitare di caricare le proprie credenziali su Github o su altri servizi. Esempio di impostazione:

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

Ora puoi effettuare il login usando le variabili di ambiente:

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

È ancora più conveniente (specialmente se utilizzi spesso i dati) impostarli come variabili di ambiente direttamente nel sistema operativo. In questo modo saranno sempre disponibili e non sarà necessario specificarli nel codice.

Automazione tidyverse con styler

Pulire il codice può essere facilitato dal pacchetto styler, che offre molte opzioni per la formattazione automatica del codice in tidyverse. Tutto quello che devi fare è eseguire styler::style_file() per il tuo script problematico. Il pacchetto farà molto (ma non tutto) per sistemare le cose.

Parametrizzazione dei documenti R Markdown

Quindi, hai creato un ottimo documento R Markdown in cui analizzi vari fatti sui cani. E poi ti viene in mente che sarebbe meglio fare lo stesso lavoro, ma con i gatti. Nessun problema, puoi automatizzare la creazione di report sui gatti con una sola riga di comando. Per fare ciò, devi solo parametrizzare il tuo documento R Markdown.

Questo può essere fatto impostando i parametri per l'intestazione YAML nel documento specificato e poi i parametri dei valori.

— title: «Analisi degli Animali»
author: «Keith McNulty»
date: «21 Marzo 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]

Ora puoi specificare tutte le variabili nel codice del documento come params$animal_name e params$years_of_study. Poi utilizza il menu a discesa Knit (o knit_with_parameters()) per avere la possibilità di selezionare i parametri.

10 funzioni utili di R che potresti non conoscere

revealjs

revealjs è un pacchetto che consente di creare ottime presentazioni HTML con codice R integrato, navigazione intuitiva e menu slide. I collegamenti HTML consentono di creare rapidamente una struttura gerarchica di slide con diverse opzioni di stile. Inoltre, l'HTML funzionerà su qualsiasi dispositivo, quindi la presentazione può essere aperta su ogni telefono, tablet o laptop. Puoi configurare il reveal impostando il pacchetto e chiamandolo nell'intestazione YAML. Ecco un esempio:

— title: «Esplorando il Confine dell'Universo People Analytics»
author: «Keith McNulty»
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: «HR Analytics Meetup London — 18 Marzo 2019»
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png

Il codice sorgente della presentazione è disponibile qui, e il proprio <a href=«rpubs.com/keithmcnulty/hr_meetup_london‘>la presentazione è qui.

10 funzioni utili di R che potresti non conoscere

Tag HTML in R Shiny

La maggior parte dei programmatori non sfrutta appieno i tag HTML disponibili in R Shiny. Ci sono ben 110 tag che consentono di creare brevi chiamate per funzioni HTML o riproduzione di media. Ad esempio, di recente ho utilizzato tags$audio per riprodurre un suono 'vinci' che avvisava l'utente al termine di un'operazione.

Pacchetto praise

Utilizzare questo pacchetto è molto semplice e serve per lodare l'utente. Sembra strano, ma a loro davvero piace.

10 funzioni utili di R che potresti non conoscere

Skillbox consiglia:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster