
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 .
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 .
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.

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 , und die PrĂ€sentation ist <a href=ââ>hier verfĂŒgbar.

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.

Skillbox empfiehlt:
- ZweijÀhriger praktischer Kurs .
- Online-Kurs .
- Praktischer Jahreskurs .
Quelle: habr.com
