10 nĂŒtzliche Features von R, die Sie vielleicht nicht kannten

10 nĂŒtzliche Features von R, die Sie vielleicht nicht kannten

In R gibt es eine Vielzahl von Funktionen. Im Folgenden prĂ€sentiere ich zehn der interessantesten, von denen viele vielleicht nicht wissen. Der Artikel entstand, nachdem ich festgestellt habe, dass meine ErklĂ€rungen zu einigen Funktionen von R, die ich in meiner Arbeit nutze, von Programmierkollegen begeistert aufgenommen wurden. Falls Sie bereits alles darĂŒber wissen, bitte ich um Entschuldigung fĂŒr die verschwendete Zeit. Gleichzeitig, wenn Sie etwas teilen möchten, empfehlen Sie doch etwas NĂŒtzliches in den Kommentaren.

Skillbox empfiehlt: Praktischer Kurs „Python-Entwickler“.

Wir erinnern daran: alle Leser von „Habr“ erhalten einen Rabatt von 10.000 Rubel bei der Anmeldung zu einem beliebigen Kurs von Skillbox mit dem Aktionscode „Habr“.

Die switch-Funktion

Ich mag switch() sehr. Es ist praktisch eine abgekĂŒrzte Form des if-Operators zur Auswahl eines Wertes basierend auf dem Wert einer anderen Variablen. Ich finde es besonders nĂŒtzlich, wenn ich Code schreibe, der einen bestimmten Datensatz je nach vorheriger Auswahl laden soll. Zum Beispiel, wenn es eine Variable mit dem Namen animal gibt und ich einen bestimmten Datensatz wĂ€hlen möchte, je nachdem, ob das Tier ein Hund, eine Katze oder ein Kaninchen ist, schreibe ich folgendes:

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

Diese Funktion ist nĂŒtzlich in Shiny-Anwendungen, wo verschiedene DatensĂ€tze oder Umgebungsdateien abhĂ€ngig von einem oder mehreren EingabemenĂŒpunkten geladen werden mĂŒssen.

TastenkĂŒrzel fĂŒr RStudio

Dieser Trick gilt nicht nur fĂŒr R, sondern auch fĂŒr die RStudio IDE. Dennoch sind TastenkĂŒrzel stets sehr praktisch, da sie Zeit beim Tippen sparen. Meine Favoriten sind Strg+Umschalt+M fĂŒr den Operator %>% und Alt+- fĂŒr den Operator <-.

Um alle TastenkĂŒrzel anzuzeigen, drĂŒcken Sie einfach Alt+Umschalt+K in RStudio.

Paket flexdashboard

Wenn Sie schnell ein Shiny-Dashboard starten mĂŒssen, ist das Dashboard-Paket die beste Wahl. Es ermöglicht die Arbeit mit HTML-Shortcuts, die es einfach machen, Seitenleisten, Zeilen und Spalten ohne Probleme zu erstellen. Es gibt auch die Möglichkeit, eine Titelzeile zu verwenden, die es ermöglicht, diese auf verschiedenen Seiten der Anwendung zu platzieren, sowie Icons, Links zu GitHub, E-Mail-Adressen und vieles mehr.

Das Paket ermöglicht die Arbeit mit Rmarkdown, sodass alle Anwendungen in einer einzigen Rmd-Datei untergebracht werden können, anstatt sie auf verschiedene Server und UI-Dateien zu verteilen, wie es beispielsweise bei shinydashboard der Fall ist. Ich verwende flexdashboard immer, wenn ich einen einfachen Prototyp eines Dashboards erstellen möchte, bevor ich an komplexeren Projekten arbeite. Diese Funktion ermöglicht es, einen Prototypen innerhalb einer Stunde zu erstellen.

Die Funktionen req und validate in R Shiny

Die Entwicklung in R Shiny kann verwirrend sein, besonders wenn man stĂ€ndig merkwĂŒrdige Fehlermeldungen erhĂ€lt, die es unmöglich machen zu verstehen, was vor sich geht. Mit der Zeit entwickelt sich Shiny weiter und wird besser, immer mehr Funktionen ermöglichen es, den Grund fĂŒr Fehler zu erkennen. So löst req() das Problem eines „stummen“ Fehlers, bei dem völlig unklar ist, woran es liegt. Damit lassen sich UI-Elemente anzeigen, die mit vorherigen Aktionen in Verbindung stehen. Lassen Sie uns das an einem Beispiel erklĂ€ren:

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() prĂŒft alles vor dem Rendern und ermöglicht die Anzeige einer Fehlermeldung – beispielsweise, wenn der Benutzer eine falsche Datei hochgeladen hat:

# 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)),
"Die Spalte 'Dog Name' wurde nicht gefunden – haben Sie die richtige Datei geladen?"
)

data
})

Detailliertere Informationen zu all diesen Funktionen finden Sie hier.

Bewahren Sie Ihre Anmeldeinformationen im Systemumfeld auf

Wenn Sie planen, den Code zu teilen, der Zugangsdaten benötigt, verwenden Sie das Systemumfeld, um zu verhindern, dass persönliche Anmeldeinformationen in Github oder einem anderen Dienst veröffentlicht werden. Beispiel fĂŒr die Speicherung:

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

Jetzt können Sie sich mit den Umgebungsvariablen anmelden:

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

Es ist noch bequemer (insbesondere wenn die Daten hĂ€ufig verwendet werden), sie direkt als Umgebungsvariablen im Betriebssystem festzulegen. In diesem Fall sind sie immer verfĂŒgbar, und Sie mĂŒssen sie nicht im Code angeben.

Automatisierung von tidyverse mit styler

Das Code-Retuschieren kann durch das Paket styler unterstĂŒtzt werden, welches viele Möglichkeiten zur automatischen Formatierung von Code im tidyverse bietet. Alles, was Sie dafĂŒr tun mĂŒssen, ist, `styler::style_file()` fĂŒr Ihr fehlerhaftes Skript auszufĂŒhren. Das Paket wird viel (aber nicht alles) tun, um fĂŒr Ordnung zu sorgen.

Parameterisierung von R Markdown-Dokumenten

Angenommen, Sie haben ein hervorragendes R Markdown-Dokument erstellt, in dem Sie verschiedene Fakten ĂŒber Hunde analysieren. Und dann kommt Ihnen der Gedanke, dass es besser wĂ€re, die gleiche Arbeit fĂŒr Katzen durchzufĂŒhren. Kein Problem, Sie können die Erstellung von Katzenberichten ganz einfach mit nur einem Befehl automatisieren. DafĂŒr mĂŒssen Sie nur Ihr R Markdown-Dokument parameterisieren.

Dies geschieht, indem Sie Parameter fĂŒr den YAML-Header im angegebenen Dokument festlegen und dann Werte fĂŒr diese Parameter angeben.

— title: „Tieranalyse“
author: „Keith McNulty“
date: „21. MĂ€rz 2019“
output:
html_document:
code_folding: „hide“
params:
animal_name:
value: Hund
choices:
— Hund
— Katze
— Kaninchen
years_of_study:
input: slider
min: 2000
max: 2019
step: 1
round: 1
sep: »
value: [2010, 2017]
—

Nun können alle Variablen im Dokumenten-Code als params$animal_name und params$years_of_study definiert werden. Dann nutzen wir das Dropdown-MenĂŒ Knit (oder knit_with_parameters()), um Parameter auszuwĂ€hlen.

10 nĂŒtzliche Features von R, die Sie vielleicht nicht kannten

revealjs

revealjs ist ein Paket, das es ermöglicht, großartige HTML-PrĂ€sentationen mit integriertem R-Code, intuitiver Navigation und einem Bereich fĂŒr Folien zu erstellen. HTML-Shortcuts ermöglichen es, schnell eine verschachtelte Struktur von Folien mit verschiedenen Stilvarianten zu erstellen. Und HTML funktioniert auf jedem GerĂ€t, sodass die PrĂ€sentation auf jedem Telefon, Tablet oder Laptop geöffnet werden kann. Die Informationen können angepasst werden, indem das Paket installiert und im YAML-Header aufgerufen wird. Hier ein Beispiel:

— title: „Exporing the Edge of the People Analytics Universe“
author: „Keith McNulty“
output:
revealjs::revealjs_presentation:
center: yes
template: starwars.html
theme: black
date: „HR Analytics Meetup London — 18. MĂ€rz 2019“
resource_files:
— darth.png
— deathstar.png
— hanchewy.png
— millenium.png
— r2d2-threepio.png
— starwars.html
— starwars.png
— stormtrooper.png
—

Der Quellcode der PrĂ€sentation ist hier verfĂŒgbar, und die PrĂ€sentation ist <a href=„rpubs.com/keithmcnulty/hr_meetup_london‘>hier verfĂŒgbar.

10 nĂŒtzliche Features von R, die Sie vielleicht nicht kannten

HTML-Tags in R Shiny

Die meisten Programmierer nutzen nicht alle Vorteile der HTML-Tags, die in R Shiny verfĂŒgbar sind. Dabei sind es nur 110 Tags, die es ermöglichen, einen kurzen Aufruf fĂŒr die HTML-Funktion oder das Abspielen von Medien zu erstellen. KĂŒrzlich habe ich beispielsweise tags$audio verwendet, um ein „Sieges“-GerĂ€usch abzuspielen, das den Benutzer ĂŒber den Abschluss einer Aufgabe informierte.

Paket praise

Die Verwendung dieses Pakets ist sehr einfach und dient dazu, dem Benutzer Lob auszusprechen. Das mag seltsam erscheinen, aber tatsÀchlich gefÀllt ihm das.

10 nĂŒtzliche Features von R, die Sie vielleicht nicht kannten

Skillbox empfiehlt:

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster