10 nĂŒtzliche Funktionen von R, die Sie vielleicht nicht kennen

10 nĂŒtzliche Funktionen von R, die Sie vielleicht nicht kennen

In R gibt es eine Vielzahl verschiedener Funktionen. Im Folgenden werde ich zehn der interessantesten vorstellen, ĂŒber die viele möglicherweise nicht Bescheid wissen. Der Artikel entstand, nachdem ich festgestellt habe, dass meine Berichte ĂŒber einige Möglichkeiten von R, die ich in meiner Arbeit nutze, bei meinen programmierbegeisterten Bekannten auf großes Interesse stießen. Wenn Sie bereits alles darĂŒber wissen, entschuldige ich mich fĂŒr Ihre verschwendete Zeit. Gleichzeitig, wenn Sie etwas zu teilen haben – empfehlen Sie bitte 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 Funktion switch

Ich mag switch() sehr, sehr gerne. TatsĂ€chlich ist es eine praktische AbkĂŒrzung fĂŒr den if-Befehl, um einen Wert basierend auf dem Wert einer anderen Variablen auszuwĂ€hlen. Ich finde es besonders hilfreich, wenn ich Code schreibe, der bestimmte DatensĂ€tze gemĂ€ĂŸ einer vorherigen Auswahl laden muss. Zum Beispiel, wenn es eine Variable mit dem Namen animal gibt und ich einen bestimmten Datensatz abhĂ€ngig davon auswĂ€hlen muss, ob das Tier ein Hund, eine Katze oder ein Kaninchen ist, schreibe ich so:

data < — read.csv(
switch(animal,
„dog“ = „dogdata.csv“,
„cat“ = „catdata.csv“,
„rabbit“ = „rabbitdata.csv“)
)

Diese Funktion wird in Shiny-Anwendungen nĂŒtzlich sein, wo unterschiedliche DatensĂ€tze oder Umgebungsdateien basierend auf einem oder mehreren EingabemenĂŒpunkten geladen werden mĂŒssen.

Tastenkombinationen fĂŒr RStudio

Dieser Hack ist nicht so sehr fĂŒr R, sondern fĂŒr die RStudio IDE gedacht. Dennoch sind Tastenkombinationen immer sehr nĂŒtzlich, da sie Zeit beim Texteingeben sparen. Meine Favoriten sind Ctrl+Shift+M fĂŒr den Operator %>% und Alt+- fĂŒr den Operator <-.

Um alle Tastenkombinationen anzuzeigen, drĂŒcken Sie einfach Alt+Shift+K in RStudio.

Das flexdashboard-Paket

Wenn Sie schnell ein Shiny-Dashboard erstellen mĂŒssen, gibt es nichts Besseres als das dashboard-Paket. Es bietet die Möglichkeit, mit HTML-VerknĂŒpfungen zu arbeiten, die es wiederum ermöglichen, Sidebars, Zeilen und Spalten einfach und problemlos zu erstellen. Es gibt auch die Möglichkeit, eine Titelzeile zu verwenden, die es ermöglicht, sie auf verschiedenen Seiten der Anwendung zu platzieren, Icons, Links zu Github, E-Mail-Adressen und vieles mehr zu hinterlassen.

Das Paket ermöglicht die Arbeit innerhalb von Rmarkdown, sodass alle Anwendungen in einer einzigen Rmd-Datei platziert werden können, anstatt sie auf verschiedene Server und UI-Dateien zu verteilen, wie zum Beispiel bei der Verwendung von shinydashboard. Ich verwende flexdashboard immer, wenn ich einen einfachen Prototyp eines Dashboards erstellen muss, bevor ich mit etwas Komplexerem beginne. Diese Funktion ermöglicht es, einen Prototyp innerhalb einer Stunde zu erstellen.

Die Funktionen req und validate in R Shiny

Die Entwicklung in R Shiny kann verwirrend sein, insbesondere wenn man stĂ€ndig seltsame Fehlermeldungen erhĂ€lt, die es nicht ermöglichen zu verstehen, was passiert. Aber mit der Zeit entwickelt sich Shiny weiter und verbessert sich, immer mehr Funktionen kommen hinzu, die helfen, die Ursache eines Fehlers herauszufinden. So löst req() das Problem mit einem 'stillen' Fehler, bei dem ĂŒberhaupt nicht klar ist, worum es geht. Mit ihr können UI-Elemente angezeigt werden, die mit vorherigen Aktionen verknĂŒpft sind. Lassen Sie uns das anhand eines Beispiels 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() ĂŒberprĂŒft alles vor dem Rendering und ermöglicht es, eine Fehlermeldung auszugeben – zum Beispiel, dass 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)),
„Dog Name column not found — did you load the right file?“
)

data
})

Detaillierte Informationen zu all diesen Funktionen finden Sie hier.

Die Speicherung Ihrer Zugangsdaten in der Systemumgebung

Wenn Sie planen, Code zu teilen, der den Zugriff auf Zugangsdaten erfordert – verwenden Sie die Systemumgebung, um zu verhindern, dass Ihre Zugangsdaten auf 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 anmelden, indem Sie die Umgebungsvariablen verwenden:

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

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

Automatisierung des tidyverse mit styler

Der styler-Paket kann helfen, den Code zu reinigen und bietet zahlreiche Möglichkeiten zur automatischen Stilformatierung des Codes im tidyverse. Alles, was Sie dafĂŒr tun mĂŒssen, ist, styler::style_file() fĂŒr Ihr problematisches Skript auszufĂŒhren. Das Paket wird viel (aber nicht alles) tun, um Ordnung zu schaffen.

Parametrisierung von R Markdown-Dokumenten

So, 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 mit Katzen zu machen. Kein Problem, Sie können die Erstellung von Berichten ĂŒber Katzen mit nur einem Befehl automatisieren. Dazu mĂŒssen Sie nur Ihr R Markdown-Dokument parametrisieren.

Dies können Sie tun, indem Sie Parameter im YAML-Header des angegebenen Dokuments festlegen und anschließend die Werte der Parameter definieren.

— 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]
—

Jetzt können alle Variablen im Dokumenten-Code als params$animal_name und params$years_of_study angegeben werden. Dann nutzen wir das Dropdown-MenĂŒ Knit (oder knit_with_parameters()) und erhalten die Möglichkeit, Parameter auszuwĂ€hlen.

10 nĂŒtzliche Funktionen von R, die Sie vielleicht nicht kennen

revealjs

revealjs ist ein Paket, das die Erstellung großartiger HTML-PrĂ€sentationen mit eingebettetem R-Code, intuitiver Navigation und einem Slide-MenĂŒ ermöglicht. HTML-Shortcuts erlauben eine schnelle Erstellung einer verschachtelten Folienstruktur mit verschiedenen Stilvarianten. HTML kann auf jedem GerĂ€t ausgefĂŒhrt werden, sodass die PrĂ€sentation auf jedem Telefon, Tablet oder Laptop geöffnet werden kann. Die Informationen können konfiguriert werden, indem das Paket installiert und in der YAML-Überschrift aufgerufen wird. Hier ist ein Beispiel:

— title: „Die Grenzen des People Analytics Universums erkunden“
author: „Keith McNulty“
output:
revealjs::revealjs_presentation:
center: ja
template: starwars.html
theme: schwarz
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 platziert, und die PrĂ€sentation ist <a href=„rpubs.com/keithmcnulty/hr_meetup_london‘>hier.

10 nĂŒtzliche Funktionen von R, die Sie vielleicht nicht kennen

HTML-Tags in R Shiny

Die meisten Programmierer nutzen nicht alle Vorteile der HTML-Tags, die in R Shiny zur VerfĂŒgung stehen. Es sind nur 110 Tags, die ermöglichen, einen kompakten Aufruf fĂŒr die HTML-Funktion oder die Medienwiedergabe zu erstellen. KĂŒrzlich verwendete ich tags$audio, um einen „Gewinn“-Ton abzuspielen, der den Nutzer darauf hinwies, dass die Aufgabe abgeschlossen war.

Das Paket praise

Es ist ganz einfach, dieses Paket zu verwenden, und es dient dazu, dem Benutzer Lob auszusprechen. Das mag seltsam erscheinen, aber tatsÀchlich gefÀllt es ihnen.

10 nĂŒtzliche Funktionen von R, die Sie vielleicht nicht kennen

Skillbox empfiehlt:

Quelle: habr.com

60GB SSD 8Gb DDR4