10 funzionalità utili di R che potresti non conoscere

10 funzionalità utili di R che potresti non conoscere

In R ci sono tantissime funzioni diverse. Qui sotto ne elenco dieci tra le più interessanti, di cui molti potrebbero non essere a conoscenza. Questo articolo è nato dopo aver scoperto che le mie spiegazioni di alcune funzionalità di R, che utilizzo nel mio lavoro, sono state accolte con entusiasmo da amici programmatori. Se già conosci tutto questo, mi scuso per il tempo sprecato. Allo stesso tempo, se hai qualcosa da condividere, ti prego di consigliare 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 moltissimo switch(). In effetti, è un comodo abbreviativo dell'operatore if per scegliere un valore in base al valore di un'altra variabile. La trovo particolarmente utile quando scrivo codice che deve caricare un insieme specifico di dati in base alla selezione precedente. Ad esempio, se ho una variabile di nome animal e devo scegliere un insieme specifico di dati in base che l'animale sia un cane, un gatto o un coniglio, scrivo 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.

Collegamenti rapidi per RStudio

Questo trucco non è tanto per R, quanto per l'IDE RStudio. Tuttavia, i collegamenti rapidi sono sempre molto utili, poiché aiutano a risparmiare tempo durante la digitazione. I miei preferiti sono Ctrl+Shift+M per l'operatore %>% e Alt+- per l'operatore <-.

Per visualizzare tutti i collegamenti rapidi, 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 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 permette di posizionarla su diverse pagine dell'app, conservando icone, collegamenti a GitHub, indirizzi email e molto altro.

Il pacchetto consente di lavorare all'interno di Rmarkdown, in modo da poter collocare tutte le applicazioni in un unico file Rmd, piuttosto che distribuirle su diversi server e file UI, come si fa, ad esempio, con shinydashboard. Utilizzo sempre flexdashboard quando ho bisogno di creare un semplice prototipo di dashboard, prima di cominciare a lavorare su qualcosa di complesso. Questa funzionalità consente di realizzare un prototipo in un'ora.

Funzioni req e validate in R Shiny

Sviluppare in R Shiny può confondere, soprattutto quando si ricevono messaggi di errore strani che non permettono di capire cosa stia succedendo. Ma nel tempo Shiny si evolve e migliora, e sempre più funzionalità permettono di capire la causa dell'errore. Ad esempio, req() affronta il problema dell'errore «silenzioso», quando non è affatto chiaro quale sia il problema. Con essa si possono visualizzare 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() controlla tutto prima del rendering e consente di visualizzare un messaggio di errore — ad esempio, se 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)),
«Dog Name column not found — did you load the right file?»
)

data
})

Per ulteriori informazioni su tutte queste funzioni puoi trovarle qui.

Memorizzare le proprie credenziali nel sistema ambiente

Se hai intenzione di condividere codice che richiede di inserire dati di accesso, utilizza il sistema ambiente per evitare di pubblicare le tue credenziali su GitHub o altri servizi. Ecco un esempio di impostazione:

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

Ora puoi effettuare il login utilizzando le variabili di ambiente:

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

È anche molto più comodo (soprattutto se i dati sono usati frequentemente) impostarli come variabili di ambiente direttamente nel sistema operativo. In questo caso saranno sempre disponibili e non sarà necessario specificarli nel codice.

Automatizzazione tidyverse con styler

Pulire il codice può essere facilitato dal pacchetto styler, che offre molte possibilità per l'applicazione automatica dello stile di codice nel tidyverse. Tutto ciò che devi fare è eseguire styler::style_file() sul tuo script problematico. Il pacchetto farà molto (ma non tutto) per riordinare le cose.

Parametrizzazione dei documenti R Markdown

Quindi, hai creato un ottimo documento R Markdown in cui analizzi fatti diversi sui cani. Poi ti viene in mente che sarebbe meglio fare lo stesso lavoro, ma solo con i gatti. Nessun problema, puoi automatizzare la creazione di report sui gatti con un'unica comando. Per questo, basta parametrizzare il tuo documento R markdown.

Puoi farlo impostando i parametri per l'intestazione YAML nel documento specificato e poi i parametri di valore.

— 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 utilizziamo il menu a discesa Knit (o knit_with_parameters()) e otteniamo la possibilità di scegliere i parametri.

10 funzionalità utili di R che potresti non conoscere

revealjs

revealjs è un pacchetto che consente di creare eccellenti presentazioni HTML con codice R integrato, navigazione intuitiva e menu a slide. Gli shortcut HTML permettono di creare rapidamente una struttura annidata di slide con diverse opzioni di stile. Inoltre, l'HTML può essere eseguito su qualsiasi dispositivo, quindi la presentazione può essere aperta su qualsiasi telefono, tablet o laptop. Puoi configurare la rivelazione delle informazioni installando il pacchetto e chiamandolo nell'intestazione YAML. Ecco un esempio:

— title: «Esplorando il Confine dell'Universo dell'Analisi delle Persone»
author: «Keith McNulty»
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: «HR Analytics Meetup Londra — 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 la <a href=«rpubs.com/keithmcnulty/hr_meetup_london‘>presentazione è qui.

10 funzionalità utili di R che potresti non conoscere

Tag HTML in R Shiny

La maggior parte degli programmatori non sfrutta tutte le potenzialità dei tag HTML disponibili in R Shiny. Si tratta di soli 110 tag che permettono di creare una chiamata breve per una funzione HTML o per la riproduzione di media. Ad esempio, recentemente ho usato tags$audio per riprodurre un suono 'vincente' che avvisava l'utente della conclusione di un compito.

Pacchetto praise

Usare questo pacchetto è molto semplice ed è necessario per dare complimenti all'utente. Può sembrare strano, ma in realtà a loro piace.

10 funzionalità utili di R che potresti non conoscere

Skillbox consiglia:

Fonte: habr.com

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