tidyverse

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

Antworten
wbart
Beiträge: 89
Registriert: Fr Mär 16, 2018 4:08 pm

tidyverse

Beitrag von wbart »

Hallo,

mal eine allgemeine Frage, mit der Bitte um subjektive Antworten ;) . Als Neuling habe ich mich für die Datenaufbereitung auf das tidyverse package gestürzt, weil es einfacher erschien. Nun bin ich häufiger mit tidyverse gescheitert und in den wenigen Gesprächen, die ich geführt habe, habe ich den Eindruck gewonnen, dass Profis diesse Package nicht benutzen. Stimmt mein Eindruck? Wie steht ihr zum tidyverse-universum?

VG
wbart
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: tidyverse

Beitrag von bigben »

Hallo wbart,

das tidyverse ist ein Versuch, über R nochmal ganz neu nachzudenken und Dinge neu und einheitlicher umzusetzen. In der Tat sind Einschätzungen zum Wert des tidyverse oft und gerne subjektiv. Aber es ist ein ausgereiftes System und wenn Du mit Datenauswerteprojekten in R scheiterst, dann liegt das nicht am tidyverse, sondern daran, dass Du das tidyverse noch nicht gut genug kennst. Mit klassischem R hättest Du wahrscheinlich ähnlich viele Probleme, vielleicht an gleicher, vielleicht an anderer Stelle gehabt.

Entgegen einiger lauter Stimmen die uns weis machen wollen, dass das tidyverse das beste seit geschnittenem Brot ist, halte ich beides für sehr gute Systeme.

Wie groß die Verbreitung des tidyverse genau ist und wie die Verteilung zwischen Anfängern, Fortgeschrittenen und Profis dabei genau ist, weiß ich nicht. Ich bin aber ziemlich überzeugt, dass es falsch wäre zu behaupte, dass Profis nicht das tidyverse nutzten. Ich würde eher vermuten, dass das tidyverse für Anfänger mehr Nachteile mit sich bringt und dass Profis vielleicht eher von den Vorteilen profitieren, aber auch das ist eine stark subjektiv gefärbte Ansicht.

Wenn Du jetzt schon eine nennenswerte Investition in tidyverse gemacht hast, dann würde ich wahrscheinlich eher versuchen, dabei zu bleiben und es richtig zu durchschauen. Hier im Forum ist die Unterstützung dafür wohl nicht ganz so gut, aber das liegt m. E. eher an der kleinen Gruppengröße der hier regelhaft postenden. Da sind zufällig keine ganz wilden tidyverse-Apostel dabei.

HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: tidyverse

Beitrag von EDi »

tl;dr

Das tidyverse Paket würde ich nicht nutzen. Pakete aus dem tidyverse sind aber aus der R Welt nicht wegzudenken.

in den wenigen Gesprächen, die ich geführt habe, habe ich den Eindruck gewonnen, dass Profis diesse Package nicht benutzen. Stimmt mein Eindruck?
Ich zähle mich mal etwas arrogant zu den professionellen R Nutzern (zumindest Programmiere ich jeden Tag in R und verdiene meine Brötchen damit).

Ich würde niemals

Code: Alles auswählen

library("tidyverse")
oder in einem Paket

Code: Alles auswählen

Import: tidyverse
Das impliziert nämlich das laden von ca. 25 Paketen. In meinem Programmcode möchte ich aber explizit sein (macht das Leben danach einfacher). Deshalb lade ich immer explizit die Pakete die ich brauche, z.B.

Code: Alles auswählen

library("dplyr")
Auch bein Funktionsaufrufen bin ich explizit. Schönes Beispiel ist:

Code: Alles auswählen

dplyr::filter()
Nicht umsonst gibt's dann die Warnung

Code: Alles auswählen

The following objects are masked from 'package:stats':

    filter, lag

Ich bin also ein bekennender Nutzer von tidyverse Paketen. Und ich will diese auch nicht missen:
  • Was wäre R ohne ggplot2?
  • tidyr::pivot_longer/wider nutze ich oft (außer ich bin in einem datatable project), weil ich mir schwer mit base::reshape tue
  • DBI & dbplyr machen das schreiben von SQL Abfragen einfach, sicher & schnell. Klar ich kann auch gut SQL und könnte auch alles in raw-SQL schreiben - aber es ist für ein Gewinn in dbplyr zu nutzen. Weil schneller runtergeschrieben.
  • httr ist für mich derzeit das einfachste um mit APIs zu arbeiten.
Es gibt aber auch Pakete aus dem tidyverse die ich noch nie genutzt hab:
  • forcats brauche ich nicht, weil ich nur in bestimmten Fällen faktoren nutze und dann auch gut klar komme
  • blob nutze ich wenn dann nur implizit als dependency anderer Pakete
Meiner Meinung nach gibts kein schwarz oder weiß:
Nimm das was deinem Problem taugt: base, tidyverse-Pakete oder data.table...

Es ist egal. Wichtiger ist, dass man die Konzepte verstanden hat als die Implementierungsdetails. Ohne die Konzepte verstanden zu haben, ist es egal was man nimmt - murgs wird es immer...

Letzteres gilt übrigens auch wenn man z.B. R vs. python diskutiert. Die Konzepte sind gleich. Hat man die drauf, wird man erkennen das der Unterschied nicht so groß ist: Kann man eins, versteht man auch das andere.

Hoffe das hilft dir weiter.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: tidyverse

Beitrag von student »

Hallo wbart,

ich bewege mich nach Möglichkeit im "Base R"-Bereich und hole mir explizit Pakete oder Funktionen über Paket::Funktion hinzu und versuche tidyverse nicht zu benutzen. Da bewege ich mit meinen Gründen nahe an EDi's Darlegung.

Auch Deine Schilderung
Nun bin ich häufiger mit tidyverse gescheitert ...
kommt mir bekannt vor, denn ich hatte schon Gespräche mit R-Nutzern geführt, die ähnliches Berichtet haben und sich selbst mit einfachen R-Anweisungen (aus dem "Base"-Bereich) nicht weiterhelfen konnten.

Es gibt endlose Diskussion über das Thema, ich denke aber, dass die Vorgehensweise, sich zuerst mit "Base R" und den Möglichkeiten zu beschäftigen und dann sich das tidyverse anzuschauen die optimaler Vorgehensweise ist.

Zu Deiner Bemerkung
... habe ich den Eindruck gewonnen, dass Profis dieses Package nicht benutzen ...
kann ich zusteuern, dass das tidyversum viele Abhängigkeiten in "R-Projekte" einbringt und die Wartbarkeit eine wesentliche Rolle spielt. Die Pflege dieser Projekte ist einfacher, wenn genau Du das verwendetes, was benötigt wird. Wenn Du allerdings nur an eine einzelne Arbeit denkst, spielt dieser Punkt sicher keine Rolle.
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de, Datenanalyse mit R & das Ad-Oculos-Projekt
Das Ad-Oculos-Projekt auf YouTube

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)
Antworten