10 nützliche R-Funktionen, die Sie vielleicht noch nicht kennen
R ist voll von einer Vielzahl von Funktionen. Im Folgenden werde ich zehn der interessantesten davon nennen, die viele vielleicht nicht kennen. Der Artikel erschien, nachdem ich herausgefunden hatte, dass meine Geschichten über einige der Funktionen von R, die ich in meiner Arbeit verwende, von meinen Programmierkollegen begeistert aufgenommen wurden. Wenn Sie bereits alles darüber wissen, entschuldige ich mich dafür, dass ich Ihre Zeit verschwendet habe. Wenn Sie etwas mitzuteilen haben, empfehlen Sie gleichzeitig etwas Nützliches in den Kommentaren.
Erinnerung:für alle Leser von „Habr“ – ein Rabatt von 10 Rubel bei der Anmeldung zu einem beliebigen Skillbox-Kurs mit dem Aktionscode „Habr“.
Schaltfunktion
Ich mag switch() wirklich sehr, sehr. Tatsächlich ist es eine praktische Abkürzung für eine if-Anweisung, wenn ein Wert basierend auf dem Wert einer anderen Variablen ausgewählt wird. Ich finde das besonders nützlich, wenn ich Code schreibe, der einen bestimmten Datensatz basierend auf einer vorherigen Auswahl laden muss. Wenn Sie beispielsweise eine Variable mit dem Namen „Tier“ haben und einen bestimmten Datensatz auswählen möchten, je nachdem, ob es sich bei dem Tier um einen Hund, eine Katze oder ein Kaninchen handelt, schreiben Sie Folgendes:
Diese Funktion ist in Shiny-Anwendungen nützlich, in denen Sie abhängig von einem oder mehreren Eingabemenüelementen unterschiedliche Datensätze oder Umgebungsdateien laden müssen.
Hotkeys für RStudio
Dieser Hack ist nicht so sehr für R, sondern für RStudio IDE. Allerdings sind Hotkeys immer sehr praktisch, sodass Sie bei der Texteingabe Zeit sparen können. Meine Favoriten sind Strg+Umschalt+M für den %>%-Operator und Alt+- für den <--Operator.
Um alle Hotkeys anzuzeigen, drücken Sie einfach Alt+Umschalt+K in RStudio.
Flexdashboard-Paket
Wenn Sie Ihr Shiny-Dashboard schnell starten müssen, gibt es nichts Besseres als das Dashboard-Paket. Es bietet die Möglichkeit, mit HTML-Verknüpfungen zu arbeiten, was wiederum das einfache und problemlose Erstellen von Seitenleisten, Zeilen und Spalten ermöglicht. Es besteht auch die Möglichkeit, eine Titelleiste zu verwenden, mit der Sie sie auf verschiedenen Seiten der Anwendung platzieren, Symbole, Verknüpfungen auf Github, E-Mail-Adressen und vieles mehr hinterlassen können.
Mit dem Paket können Sie im Rahmen von Rmarkdown arbeiten, sodass Sie alle Anwendungen in einer Rmd-Datei platzieren und sie nicht auf verschiedene Server und UI-Dateien verteilen können, wie dies beispielsweise bei Shinydashboard der Fall ist. Ich verwende Flexdashboard immer dann, wenn ich einen einfachen Dashboard-Prototyp erstellen muss, bevor ich an etwas Komplexem arbeite. Mit dieser Funktion können Sie innerhalb einer Stunde einen Prototyp erstellen.
Req- und Validierungsfunktionen in R Shiny
Die Entwicklung in R Shiny kann verwirrend sein, insbesondere wenn Sie ständig seltsame Fehlermeldungen erhalten, die es schwierig machen, zu verstehen, was vor sich geht. Aber im Laufe der Zeit entwickelt und verbessert sich Shiny, hier erscheinen immer mehr Funktionen, die es Ihnen ermöglichen, die Fehlerursache zu verstehen. Daher löst req() das Problem mit einem „stillen“ Fehler, wenn im Allgemeinen nicht klar ist, was vor sich geht. Sie können damit UI-Elemente anzeigen, die mit vorherigen Aktionen verknüpft sind. Lassen Sie es uns anhand eines Beispiels erklären:
Ausgabe$go_button < — Shiny::renderUI({
# Schaltfläche nur anzeigen, wenn eine Tiereingabe ausgewählt wurde
validate() prüft alles vor dem Rendern und gibt Ihnen die Möglichkeit, eine Fehlermeldung auszudrucken – zum Beispiel, dass der Benutzer die falsche Datei hochgeladen hat:
# CSV-Eingabedatei abrufen
inFile < – input$file1
data < – inFile$datapath
# Tabelle nur rendern, wenn es sich um Hunde handelt
glänzend::renderTable({
# Überprüfen Sie, ob es sich um die Hundedatei handelt, nicht um Katzen oder Kaninchen
glänzend::validieren(
need("Hundename" %in% colnames(data)),
„Spalte „Hundename“ nicht gefunden – haben Sie die richtige Datei geladen?“
)
technische Daten
})
Weitere Informationen zu all diesen Funktionen finden Sie hier.
Speichern Sie Ihre Zugangsdaten für sich selbst in der Systemumgebung
Wenn Sie vorhaben, Code freizugeben, der die Eingabe von Anmeldeinformationen erfordert, nutzen Sie die Systemumgebung, um zu vermeiden, dass Sie Ihre eigenen Anmeldeinformationen auf Github oder einem anderen Dienst hosten. Beispielplatzierung:
Noch komfortabler (insbesondere wenn Sie die Daten häufig verwenden) ist es, sie direkt im Betriebssystem als Umgebungsvariablen festzulegen. In diesem Fall sind sie immer verfügbar und Sie müssen sie nicht im Code angeben.
Automatisieren Sie Tidyverse mit Styler
Das Styler-Paket kann Ihnen beim Aufräumen Ihres Codes helfen; es verfügt über viele Optionen, um den Codestil automatisch in Tidyverse zu übernehmen. Sie müssen lediglich styler::style_file() für Ihr problematisches Skript ausführen. Das Paket wird viel (aber nicht alles) tun, um die Ordnung wiederherzustellen.
Parametrisieren von R-Markdown-Dokumenten
Sie haben also ein großartiges R-Markdown-Dokument erstellt, in dem Sie verschiedene Fakten über Hunde analysieren. Und dann fällt Ihnen ein, dass es besser wäre, die gleiche Arbeit zu machen, aber nur mit Katzen. Kein Problem, Sie können die Erstellung von Katzenberichten mit nur einem Befehl automatisieren. Dazu müssen Sie lediglich Ihr R-Markdown-Dokument parametrisieren.
Sie können dies tun, indem Sie Parameter für den YAML-Header im angegebenen Dokument festlegen und dann die Wertparameter festlegen.
Jetzt können Sie alle Variablen im Dokumentcode als params$animal_name und params$years_of_study registrieren. Dann verwenden wir das Dropdown-Menü „Stricken“ (oder knit_with_parameters()) und können Parameter auswählen.
revealjs
revealjs ist ein Paket, mit dem Sie großartige HTML-Präsentationen mit integriertem R-Code, intuitiver Navigation und Folienmenüs erstellen können. Mithilfe von HTML-Verknüpfungen können Sie schnell eine verschachtelte Folienstruktur mit verschiedenen Gestaltungsoptionen erstellen. Nun, HTML läuft auf jedem Gerät, sodass die Präsentation auf jedem Telefon, Tablet oder Laptop geöffnet werden kann. Die Offenlegung von Informationen kann konfiguriert werden, indem das Paket installiert und im YAML-Header aufgerufen wird. Hier ist ein Beispiel:
– Titel: „Erkundung der Grenzen des People Analytics-Universums“
Autor: „Keith McNulty“
Ausgabe:
revealjs::revealjs_presentation:
Mitte: ja
Vorlage:starwars.html
Thema: Schwarz
Datum: „HR Analytics Meetup London – 18. März 2019“
Ressourcendateien:
— darth.png
- Todesstern.png
- hanchewy.png
- Millennium.png
- r2d2-dreipio.png
-starwars.html
—starwars.png
—stormtrooper.png
-
Die meisten Programmierer nutzen die HTML-Tags von R Shiny nicht voll aus. Dabei handelt es sich allerdings nur um 110 Tags, die es ermöglichen, einen kurzen Aufruf für eine HTML-Funktion oder Medienwiedergabe zu erstellen. Beispielsweise habe ich kürzlich tags$audio verwendet, um einen „Sieges“-Sound abzuspielen, der den Benutzer darauf aufmerksam machte, wenn eine Aufgabe abgeschlossen wurde.
Lobpaket
Die Verwendung dieses Pakets ist sehr einfach, wird jedoch benötigt, um dem Benutzer Lob zu zeigen. Es scheint seltsam, aber sie mögen es tatsächlich.