
Das R ist voll von verschiedenen Funktionen. Im Folgenden werde ich zehn der interessantesten von ihnen nennen, von denen viele vielleicht nichts wissen. Der Artikel erschien, nachdem ich herausgefunden hatte, dass meine Geschichten über einige der R-Funktionen, die ich in meiner Arbeit verwende, von bekannten Programmierern begeistert angenommen werden. Wenn Sie bereits alles darüber wissen, entschuldige ich mich für die aufgewendete Zeit. Wenn Sie gleichzeitig etwas zu teilen haben, geben Sie in den Kommentaren etwas Nützliches an.
Skillbox empfiehlt: Python Developer Tutorial .
Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.
Schaltfunktion
Ich mag switch () wirklich sehr. Tatsächlich ist dies eine bequeme Abkürzung für die if-Anweisung, wenn ein Wert gemäß dem Wert einer anderen Variablen ausgewählt wird. Ich finde dies besonders nützlich, wenn ich Code schreibe, der einen bestimmten Datensatz gemäß einer vorherigen Auswahl laden soll. Wenn es beispielsweise eine Variable namens animal gibt und Sie einen bestimmten Datensatz auswählen müssen, je nachdem, ob das Tier ein Hund, eine Katze oder ein Kaninchen ist, schreiben Sie Folgendes:
Daten <- read.csv (
Schalter (Tier,
"Dog" = "dogdata.csv",
"Cat" = "catdata.csv",
"Rabbit" = "rabbitdata.csv")
)Diese Funktion ist in Shiny-Anwendungen nützlich, in denen Sie abhängig von einem oder mehreren Eingabemenüelementen verschiedene Datensätze oder Umgebungsdateien laden müssen.
Tastaturkürzel für RStudio
Dieser Hack ist weniger für R als für RStudio IDE. Trotzdem sind Tastenkombinationen 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 Tastenkombinationen anzuzeigen, drücken Sie einfach Alt + Umschalt + K in RStudio.
Flexdashboard-Paket
Wenn Sie das Shiny-Bedienfeld schnell starten müssen, gibt es nichts Besseres als das Dashboard-Paket. Es bietet die Möglichkeit, mit HTML-Verknüpfungen zu arbeiten, wodurch es einfach und problemlos ist, Seitenleisten, Zeilen und Spalten zu erstellen. Es gibt auch die Möglichkeit, die 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 können, anstatt sie auf verschiedene Server und UI-Dateien zu verteilen, wie dies beispielsweise mit Shinydashboard geschieht. Ich verwende Flexdashboard immer dann, wenn ich ein einfaches Prototyp-Bedienfeld erstellen muss, bevor ich anfange, an etwas Kompliziertem zu arbeiten. Mit dieser Funktion können Sie in einer Stunde einen Prototyp erstellen.
Funktionen in R Shiny anfordern und validieren
Die Entwicklung in R Shiny kann Sie verwirren, insbesondere wenn Sie ständig seltsame Fehlermeldungen erhalten, die es unmöglich machen, zu verstehen, was passiert. Im Laufe der Zeit entwickelt und verbessert sich Shiny. Hier erscheinen immer mehr Funktionen, mit denen Sie die Fehlerursache verstehen können. Also löst req () das Problem mit einem "stillen" Fehler, wenn im Allgemeinen nicht klar ist, worum es geht. Damit können Sie die Elemente der Benutzeroberfläche anzeigen, die früheren Aktionen zugeordnet sind. Lassen Sie uns anhand eines Beispiels veranschaulichen:
Ausgabe $ go_button <- shiny :: renderUI ({
# Schaltfläche nur anzeigen, wenn eine Tiereingabe ausgewählt wurde
shiny :: req (Eingabe $ animal)
# Anzeigetaste
shiny :: actionButton ("go",
Einfügen ("Verhalten", $ animal eingeben, "Analyse!")
)
})validate () überprüft vor dem Rendern alles und ermöglicht es Ihnen, eine Fehlermeldung anzuzeigen - zum Beispiel, dass der Benutzer die falsche Datei hochgeladen hat:
# CSV-Eingabedatei abrufen
inFile <- $ file1 eingeben
data <- inFile $ datapath
# Tabelle nur rendern, wenn es sich um Hunde handelt
shiny :: renderTable ({
# Überprüfen Sie, ob es sich um die Hundedatei handelt, nicht um Katzen oder Kaninchen
glänzend :: validieren (
brauchen ("Hundename"% in% Spaltennamen (Daten)),
"Spalte" Hundename "nicht gefunden - haben Sie die richtige Datei geladen?"
)
Daten
})Weitere Informationen zu all diesen Funktionen
finden Sie hier .
Speichern Sie Ihre Anmeldeinformationen für sich selbst in der Systemumgebung
Wenn Sie den Code freigeben möchten, in den Sie Zugriffsdaten eingeben möchten, verwenden Sie die Systemumgebung, um zu vermeiden, dass Sie Ihre eigenen Anmeldeinformationen in Github oder einem anderen Dienst ablegen. Platzierungsbeispiel:
Sys.setenv (
DSN = "Datenbankname",
UID = "Benutzer-ID",
PASS = "Passwort"
)Jetzt können Sie sich mit Umgebungsvariablen anmelden:
db <- DBI :: dbConnect (
drv = odbc :: odbc (),
dsn = Sys.getenv ("DSN"),
uid = Sys.getenv ("UID"),
pwd = Sys.getenv ("PASS")
)Noch bequemer (insbesondere wenn Sie Daten häufig verwenden) ist es, sie direkt im Betriebssystem als Umgebungsvariablen festzulegen. In diesem Fall sind sie immer verfügbar und müssen nicht im Code angegeben werden.
Tidyverse Automatisierung mit Styler
Das Styler-Paket kann dabei helfen, den Code zu bereinigen. Es verfügt über viele Funktionen zum automatischen Konvertieren des Codestils in tidyverse. Dazu müssen Sie lediglich styler :: style_file () für Ihr problematisches Skript ausführen. Das Paket wird viel (aber nicht alles) tun, um die Ordnung wiederherzustellen.
Dokumentparametrierung R Markdown
Sie haben also ein ausgezeichnetes 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. Es ist in Ordnung, Sie können die Meldung von Katzen mit nur einem Befehl automatisieren. Dazu müssen Sie nur Ihr R-Markdown-Dokument parametrieren.
Sie können dies tun, indem Sie Parameter für den YAML-Header im angegebenen Dokument festlegen und dann Parameter bewerten.
- Titel: "Tieranalyse"
Autor: "Keith McNulty"
Datum: "21. März 2019"
Ausgabe:
html_document:
code_folding: "verstecken"
Parameter:
Tiername:
Wert: Hund
Auswahlmöglichkeiten:
- Hund
- Katze
- Kaninchen
Studienjahre:
Eingabe: Schieberegler
min: 2000
max: 2019
Schritt: 1
Runde: 1
sep: ''
Wert: [2010, 2017]
--- ---.Jetzt können Sie alle Variablen im Dokumentcode als Parameter $ animal_name und Parameter $ year_of_study registrieren. Dann verwenden wir das Dropdown-Menü Stricken (oder knit_with_parameters ()) und erhalten die Möglichkeit, Parameter auszuwählen.

enthüllen
enthüllenjs - ein Paket, mit dem Sie großartige HTML-Präsentationen mit integriertem R-Code, intuitiver Navigation und Folienmenüs erstellen können. Mit HTML-Verknüpfungen können Sie schnell eine verschachtelte Folienstruktur mit verschiedenen Stilen erstellen. Nun, HTML kann auf jedem Gerät ausgeführt werden, 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: "Den Rand des People Analytics-Universums ausbauen"
Autor: "Keith McNulty"
Ausgabe:
enthüllenjs :: enthüllenjs_presentation:
Mitte: ja
Vorlage: starwars.html
Thema: schwarz
Datum: „HR Analytics Meetup London - 18. März 2019“
Ressourcendateien:
- darth.png
- deathstar.png
- hanchewy.png
- millenium.png
- r2d2-threepio.png
- starwars.html
- starwars.png
- Stormtrooper.png
--- ---.Der Quellcode der Präsentation wird
hier veröffentlicht , und die <a
href=foreign rpubs.com/keithmcnulty/hr_meetup_london'> Präsentation selbst ist hier.

HTML-Tags in R Shiny
Die meisten Programmierer nutzen die HTML-Tags von R Shiny nicht voll aus. Dies sind jedoch nur 110 Tags, mit denen ein kurzer Aufruf für eine HTML-Funktion oder eine Medienwiedergabe erstellt werden kann. Zum Beispiel habe ich kürzlich Tags $ audio verwendet, um einen „gewinnenden“ Sound abzuspielen, der den Benutzer vor dem Abschluss einer Aufgabe warnte.
Lobpaket
Die Verwendung dieses Pakets ist sehr einfach, aber Sie benötigen es, um dem Benutzer Lob zu geben. Es scheint seltsam, aber sie mögen es wirklich.

Skillbox empfiehlt: