An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von Hufeisen »

Ich habe mir den Artikel auch zu Gemüt geführt und kann als ewiger Anfänger vielleicht auch meine Meinung dazu abgeben. So ganz hat er mich nicht überzeugt. Ich habe zwar ebenfalls viel genickt, denn das tidyverse steht auch meiner Ansicht nach in einem Spannungsverhältnis aus einheitlicher Syntax (das ist ein Vorteil) und einem völlig unübersichtlichen Funktionsdschungel (das ist der Nachteil). Das hat mich bisher immer abgeschreckt, redundante Befehle zu base R zu lernen. Der Aufwand steht einfach in keinem Verhältnis dazu, dass man manche Sachen sehr elegant erledigen kann. Damit sich das lohnt, muss man schon sehr viel mit R arbeiten.
Aber ehrlicherweise kann das nicht der Bezugspunkt für einen Vergleich sein und das hat mich auch im Artikel gestört. Ein fairer Vergleich würde die Lernkurven von Anfängern in base R mit denen von Anfängern im tidyverse ohne Kenntnise in base R vergleichen. Mir war der Artikel dahingehend argumentativ zu schwach. Zum Beispiel wird der Funktionsumfang von dplyr genannt (263 Funktionen), ohne eine vergleichbare Zahl für base R zu nennen. Selbst wenn eine Zahl genannt würde, muss das kein gutes Argument sein. Wie viele der Funktionen benötigt man denn wirklich, um produktiv zu arbeiten? Harte Zahlen, welcher Weg besser zu erlernen ist, gibt es anscheinend nicht.
Dass dem Autor der Umgang mit der apply-Familie leicht fällt, wundert mich nicht. Mich persönlich stören sie immer, weil ich mein Skript mit Blick auf Dritte schreibe, die keine Chance haben, zu verstehen was da passiert, weil apply spezifisch für R ist. Deshalb benutze ich gerne for-Schleifen, die versteht jeder, der Informatik in der Schule hatte. Aus diesem Blickwinkel der Lesbarkeit für Laien würde ich auch das tidyverse in der Fallstudie vorne sehen.

Code: Alles auswählen

> mtcars %>%
+ group_by(cyl,gear) %>%
+ summarize(mean(mpg))

# vs.

> tapply(mtcars$mpg,list(mtcars$cyl,mtcars$gear),mean)
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von student »

Hallo Hufeisen,

wenn Du argumentierst "Hauptsache ich kann meine Arbeit erledigen!" gebe ich Dir recht und Tidyverse erfüllt seinen Zweck. Aber gerade heute ist ein Post hereingekommen, der Argumente gegen das Tidyverse liefert: http://forum.r-statistik.de/viewtopic.php?t=1862

Wenn der Anwender - wie geschehen - auf Probleme stößt, ist Hilflosigkeit angesagt. Meiner Auffassung nach, unterstützt dieser Post den diskutierten Artikel. Und diese Anwendererfahrung habe ich in meiner Tätigkeit oft angetroffen. ;)
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)
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von Hufeisen »

student hat geschrieben: Fr Okt 04, 2019 8:22 pm wenn Du argumentierst "Hauptsache ich kann meine Arbeit erledigen!" gebe ich Dir recht und Tidyverse erfüllt seinen Zweck.
Ja, aber mein Argument ging in beide Richtungen. Wenn man schon etwas base R kann, lohnt sich das Erlernen des tidyverse zusätzlich für mich nicht, weil ich einfach nur meine Arbeit erledigen will. Aber wenn man ganz von vorne mit R anfängt, sehe ich keinen Grund, nicht direkt ins tidyverse einzusteigen. Zumindest fand ich dazu kein überzeugendes Argument in dem Artikel.
student hat geschrieben: Fr Okt 04, 2019 8:22 pm Aber gerade heute ist ein Post hereingekommen, der Argumente gegen das Tidyverse liefert: http://forum.r-statistik.de/viewtopic.php?t=1862 Wenn der Anwender - wie geschehen - auf Probleme stößt, ist Hilflosigkeit angesagt. Meiner Auffassung nach, unterstützt dieser Post den diskutierten Artikel. Und diese Anwendererfahrung habe ich in meiner Tätigkeit oft angetroffen. ;)
Naja, dann müsste man aber auch jedes Problem mit base R entsprechend anführen. Das tidyverse ist sehr umfangreich. Hier muss man für einen fairen Vergleich eine ähnliche Leistungsfähigkeit haben, also base R mit anderen Paketen gegen das tidyverse stellen. Aber ich kann das letztlich nicht beurteilen, welche 'Welt' nun die bessere ist. Du hast da ja Erfahrungen aus erster Hand. Letztlich ist es doch eine Aufteilung der R-Welt in zwei verschiedene Systeme.
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von student »

Und das
Letztlich ist es doch eine Aufteilung der R-Welt in zwei verschiedene Systeme.
ist das, was ich befürchte! :(
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)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von bigben »

Hallo Hufeisen,
Hufeisen hat geschrieben: Fr Okt 04, 2019 9:33 pmNaja, dann müsste man aber auch jedes Problem mit base R entsprechend anführen.
Das ist schon richtig. R ist über Jahrzehnte gewachsen und hat dabei reichlich Schrott angesammelt, den es von jetzt ab in alle Ewigkeit mit sich herumtragen wird. Einige davon habe ich in diesem Forum immer wieder angesprochen. "Das R Inferno" ist ein sehr bekanntes Buch nur über dieses Thema. Da darf gerne jemand kommen, eine klaren Schnitt machen und eine saubere Statistiksprache fordern und einführen. Die Leute von Julia machen das so. Der Erfinder von Python hat vor vielen Jahren einen klaren Schnitt gemacht und erklät, dass der Wechsel von Python 2.X auf 3.X als radikaler Schnitt angesetzt wird, der backwards-Kompatibilität bricht. Das hat viele Schmerzen verursacht, aber Sprachenerfinder dürfen das. Die Leute von CoffeeScript fanden ein paar Nachteile am verbreiteten JavaScript, drum haben sie eine Sprache erfunden, die in JavaScript übersetzt wird und so haben sie eine eigene Sprache mit eigenem Namen und fügen JavaScript keinen Schaden zu. Jeder Programmierer weiß immer genau, ob er gerade in JavaScript oder in CoffeeScript unterwegs ist. Kein Anfänger muss sich fragen, warum seine im CoffeeScript Buch gelesenen Beispiele in JavaScript nicht funktionieren.

Was die Aggressivität der tidyverse-Vertreter angeht: Das ist mir zuviel Bruch mit alten Gewohnheiten. Wenn Carolin aus dem von Student verlinkten Thread auf hunderten von Webseiten und in vielen Büchern findet, dass man Daten in R mit reshape umformt, dann ist es ein Problem, wenn das gar nicht mehr geht. reshape ist sicher nicht das beste Aushängeschild für R, aber es ist nunmal die zentrale Funktion für einen zentralen Vorgang in R. Wenn Du R sehr gründlich aus vor-tidyverse-Büchern gelernt hast, dann solltest Du die Vignetten und examples jedes Pakets lesen können. Kannst Du aber nicht, weil die die Existenz und Funktion des Pipe-Operators als normal voraussetzen, obwohl der für R nicht normal ist.

Es gibt eine große Zahl von Programmiersprachen, deren Syntax sich an die ehemalige Weltsprache C anlehnt. Alle diese Sprachen haben eine C-like syntax. Dazu gehörte R immer. Naja, Funktionsdefinitionen sehen icht aus wie in C. Aber weil Hadley Wickham sich hinter den Pipe-Operator gestellt hat soll R jetzt nicht mir C-like sein? Ist das nicht ein wenig arrogant?
Letztlich ist es doch eine Aufteilung der R-Welt in zwei verschiedene Systeme.
Das ist das Problem. Wer darf für sich in Anspruch nehmen, R zu definieren? Und was passiert, wenn es zum Bruch kommt? R ist freie Software und natürlich darf jeder einen neuen Branch aufmachen und R selbst weiter entwickeln. Wenn die tidyverse-Extremen den Mut hätten zu sagen: Ok, wir wollen R so radikal verändern, dass Rückwärtskompatibilität keine Rolle mehr spielt, dann sollen sie sich einen schönen Namen ausdenken, dann sollen sie das Q nennen, oder R++, oder R# oder tidy-lang und nach einem solchen offiziellen Bruch wird dann mit den Füßen abgestimmt. Die sollen nicht so tun, als ob all die Bücher in meinem Regal mit einem "R" darauf sich auf ihre Sprache bezögen, wenn reshape unbrauchbar und filter überschrieben wird.

Es gibt modernere und inherent bessere Sprachen als R. Die Stärke von R ist die weite Verbreitung und die Diversität und Qualität der CRAN Pakete. Wenn reshape nicht mit tibbles läuft weil man Reihen keine Namen geben darf, was glaubst Du, wieviele andere Funktionen auf CRAN auch Datenreihen mit Namen versehen und deshalb alle Fehler werfen mit Qualitäts-Fehlermeldungen der Art

Code: Alles auswählen

Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
In addition: Warning message:
Setting row names on a tibble is deprecated. 
Weißt Du nicht? Ich auch nicht.

Ich habe sehr viel über R von EDi gelernt und habe gelernt, dass seine Aussagen viel Substanz haben. Wie gut vertragen sich Deiner Meinung nach folgende Zitate aus diesem Thread?
Aber wenn man ganz von vorne mit R anfängt, sehe ich keinen Grund, nicht direkt ins tidyverse einzusteigen.
und
Mein Rat: Sobald ihr aus dem tidyverse rausgeht: zu data.frame konvertieren! (Gilt aber auch für data.tables).
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von Hufeisen »

Lieber Bernhard,

vielen Dank für deine ausführliche Antwort. Da kann ich wohl keine schuldig bleiben. Ich kann in der Sache weniger beitragen als Du und andere hier. Ich sehe aber in der Diskussion einige formale Probleme. Wenn Du und andere von der Aggressivität der tidyverse-Vertreter, tidy-Extremen oder ihrer Arroganz sprechen, handelt es sich um ein Strohmann-Argument. Das ist mir auch in dem Artikel von Norm Matloff sauer aufgestoßen, dass er viele seiner Argumente auf „Tidy advocates' claim..“ aufbaut, ohne diese Behauptungen zu verlinken. Man läuft so schnell Gefahr, dass man über gefühlte Wahrheiten statt über die Argumente des Gegenübers diskutiert. Man versteift sich auf ein Schattenboxen gegen Extrempositionen, die so niemand vertritt. In der Sache kann ich viele Argumente zwar verstehen, letztlich den Vergleich zwischen tidyverse und base R aber nicht leisten. Mir fehlt der Überblick. Da machen mich diese formalen Defizite in der Argumentation skeptisch.
bigben hat geschrieben: Mo Okt 07, 2019 9:45 amWer darf für sich in Anspruch nehmen, R zu definieren? Und was passiert, wenn es zum Bruch kommt? .... Die sollen nicht so tun, als ob all die Bücher in meinem Regal mit einem "R" darauf sich auf ihre Sprache bezögen, wenn reshape unbrauchbar und filter überschrieben wird.
Ich sehe das Problem hier nicht. Wenn ich in R ein Paket lade, wird mir eine Warnmeldung angezeigt, dass folgende Befehle überschrieben werden. Diesen Hinweis muss man beherzigen. Aber das ist kein Problem des tidyverse sondern der Verwendung von Paketen im Allgemeinen.
Auch die Versionsprobleme gelten übergreifend. Aktuell nutze ich Pakete wie sp und tmap, die in Versionen > 1 erscheinen. Das erweckt den Eindruck, es wären fertige Pakete. Beide Pakete verweisen aber zumindest auf sf, das erst in Version 0.8 vorliegt und wieder eigene Abhängigkeiten mitbringt. Am Ende hat man einen kaum zu überblickenden Dschungel an Abhängigkeiten, imports und suggests. Wenn dann irgendwo ein fehlerhafter Versionssprung stattfindet hat man ein Problem. Das hatte ich auch schon mal. Deshalb denke ich, dass man im tidyverse wie auch in base R das gleiche Problem hat: Man klimpert sich zu Hause oder auf der Arbeit ein Skript zusammen, das ein Jahr später jemand nachvollziehen möchte und es scheitert schon beim Laden der benötigten Pakete. Das ist zumindest meine (sehr beschränkte) Erfahrung.
bigben hat geschrieben: Mo Okt 07, 2019 9:45 amWenn reshape nicht mit tibbles läuft weil man Reihen keine Namen geben darf, was glaubst Du, wieviele andere Funktionen auf CRAN auch Datenreihen mit Namen versehen und deshalb alle Fehler werfen...
Deshalb sehe ich diesen Punkt nicht so kritisch, da ich dessen Ursprung nicht dem tidyverse zuordnen würde, sondern dem Einbinden von x-verschiedenen Paketen.
bigben hat geschrieben: Mo Okt 07, 2019 9:45 amWie gut vertragen sich Deiner Meinung nach folgende Zitate aus diesem Thread?
Bestens, ich sehe da kein Problem. Der Rat, beim Verlassen des tidyverse die Datenstruktur zu konvertieren, ist notwendig, weil man eben erst rein und dann wieder raus geht. Die Frage ist für mich eher, ob es sinnvoll ist, für jedes Problem ein eigenes Paket zu laden. Bei einem (meiner Meinung nach) sinnvollen Vergleich zwischen nur base R und nur tidyverse, wäre dieser Schritt gar nicht nötig.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von bigben »

Hallo!
Hufeisen hat geschrieben: Mo Okt 07, 2019 11:34 amWenn Du und andere von der Aggressivität der tidyverse-Vertreter, tidy-Extremen oder ihrer Arroganz sprechen, handelt es sich um ein Strohmann-Argument.
Du hast Recht, dass die Argumentation da eine Lücke hat und deshalb hast du in die Diskussion ein wichtiges Argument eingebracht. Deine Behauptung, Du könntest weniger beitragen als andere, ist damit schon entwertet.

Nun ist es schwer, diese Argumentation quantitativ zu belegen. Das bleibt immer kasuistisch. Ich beispielsweise habe heute, angeregt durch einen Thread auf statistik-forum.de, nach Möglichkeiten gegoogled, Tabellen in R schön darzustellen. Mein erster Treffer führt auf einen Blogpost "Create stylish tables in R using formattable" unter https://www.littlemissdata.com/blog/prettytables
Was braucht man, um zu zeigen, dass das Paket prettytables schöne Tabellen macht? Eine Tabelle in R und das vorzustellende Paket. Was verwendet der Blogautor? Im ersten Codeblock die Funktion fread aus data.table und im zweiten Codeblock Pipes und tidyverse-Funktionen! Warum? Das Einbinden von data.table dauert bestimmt längere Zeit als die Funktion fread beim Einlesen spart und dieses dplyr-Monster mit dem er die Tabelle aufbaut könnte ich bestimmt verstehen, wenn ich es mir in Ruhe anschauen und dabei ein wenig googlen wollte. Einer der in R mitgelieferten Datensätze hätte es bestimmt auch getan.

Was beweist das? Nichts! Und hundert solcher Beispiele? Immer noch nichts angesichts der Fülle der Blogs über R. Es ist eine gefühlte Wahrheit, dass solchermaßen unnütze Standardverwendung von dplyr (und hier auch data.table) zu häufig vorkommen, dass auf StackOverflow Fragen mit dplyr-Mehrzeilern beantwortet werden, die mit R-Einzeilern zu beantworten sind dass sich Anfragen wie die von jmr in http://forum.r-statistik.de/viewtopic.php?f=7&t=1851 häufen: Ein Anfänger hat ein schlichtes Problem, für das base R eine einfache und schöne Antwort hat. Der Anfänger scheitert beim Versuch, das mit mutate zu lösen, weil mutate ihm irgendwie als natürlichere Lösung erscheint. Warum erscheint einem Anfänger, der noch nichtmal aggregate kennt, mutate als natürliche Lösung für irgendwas?

Ich konzidiere, dass gefühlte Wahrheiten keine Fakten sind. Gestehst Du mir zu, dass es sehr schwer wäre, hier objektive Fakten zu erheben?
Ich sehe das Problem hier nicht. Wenn ich in R ein Paket lade, wird mir eine Warnmeldung angezeigt, dass folgende Befehle überschrieben werden.
Das habe ich EDi oben schon zugegeben. Ändert aber nichts daran, dass meine Mitarbeiterin und o. g. Carolin dachten, Sie hätten data.frames vor sich und jeweils an Inkompatibilitäten zwischen data.frames und tibbles gescheitert sind. Klar kann man jetzt einfach RTFM sagen, ist schließlich jeder selbst Schuld, wenn er irgendwas anklickt, was er nichts bis ins letzte verstanden hat.

Ich bin Arzt in einer Universitätsklinik. Medizin ist SPSS-Land - die Erkenntnis, das SPSS und Statistik nicht das gleiche sind kennzeichnet hier schon den weit fortgeschrittenen User. Ich versuche, Doktoranden und Mitarbeitern R schmackhaft zu machen, ohne dass ich die Möglichkeit hätte, irgend etwas in einer systematischen Vorlesung schrittweise aufzubauen. Unnötige Fehler die entstehen, weil jemand glaubt, einen Dataframe zu haben, in Wirklichkeit aber einen Dataframe hat, der sich nicht wie einer verhält, helfen bei dieser Mission nicht.
Bei data.table schreibt man halt irgendwann as.data.table oder setDT. Bei tibbles verwendet man irgend ein import-Menü in RStudio oder verwendet eine dplyr-Funktion bei der einem vielleicht gar nicht bewusst ist, dass sie tibbles zurück gibt. Auch wenn RTFM da nicht immer fehl am Platze ist, stört mich das bei meinem Versuch, Leuten klar zu machen, dass R ihnen kostenlos, verlässlich und reproduzierbar Ergebnisse gibt, die nicht schlechter als SPSS-Ergebnisse sind.

bigben hat geschrieben: Mo Okt 07, 2019 9:45 amWie gut vertragen sich Deiner Meinung nach folgende Zitate aus diesem Thread?
Bestens, ich sehe da kein Problem. Der Rat, beim Verlassen des tidyverse die Datenstruktur zu konvertieren, ist notwendig, weil man eben erst rein und dann wieder raus geht.
Es ging ja hier um den Anfänger. Wenn der Anfänger sich ohnehin im reinen base und stats und graphics-R auskennen muss, warum dann Komplexität erhöhen durch zusätzliche Formen der Datenhaltung? Die Vorteile greifen später, anfangs dominiert die unnötige zusätzliche Komplexität.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von Hufeisen »

bigben hat geschrieben: Mo Okt 07, 2019 1:06 pmIch konzidiere, dass gefühlte Wahrheiten keine Fakten sind. Gestehst Du mir zu, dass es sehr schwer wäre, hier objektive Fakten zu erheben?
Auf jeden Fall. Ich teile ja auch die Grundaussage des Artikels, dass das tidyverse für in base R ausgebildete Anfänger unnötig kompliziert ist, unter anderem weil das für mich genau so zutrifft. Nur hätte ich mir von dem Autor, der ja viele Jahre lang in der Lehre tätig war, da einfach etwas Handfesteres gewünscht, das seine Argumentation stützt. Es würde mir ja schon reichen, wenn er es ausprobiert hätte, Anfänger in base R und Anfänger im tidyverse zu unterrichten, und nach 2 Semestern gemerkt hätte, dass die tidyverse-Anfänger deutlich häufiger in die Sprechstunde kommen.
Übrigens hast Du mein Argument sehr gut aufgenommen. Ich hatte schon befürchtet, man könnte es falsch verstehen oder ich hätte es zu scharf formuliert. :oops:
bigben hat geschrieben: Mo Okt 07, 2019 1:06 pmÄndert aber nichts daran, dass meine Mitarbeiterin und o. g. Carolin dachten, Sie hätten data.frames vor sich und jeweils an Inkompatibilitäten zwischen data.frames und tibbles gescheitert sind. Klar kann man jetzt einfach RTFM sagen, ist schließlich jeder selbst Schuld, wenn er irgendwas anklickt, was er nichts bis ins letzte verstanden hat.
Ich denke, das betrifft ein weiter gefasstes Problemfeld mit R: Man sitzt vor einer echten Programmiersprache. Damit hat man praktisch unbegrenzte Möglichkeiten, aber die Lernkurve ist sehr steil, man muss vieles beachten und man kann vieles falsch machen. Das Überlesen einer einzigen Zeile oder ein falsch gesetztes Komma können ein ganzes Skript unbrauchbar machen. Dass ist ein Nachteil gegenüber SPSS.
bigben hat geschrieben: Mo Okt 07, 2019 9:45 am Es ging ja hier um den Anfänger. Wenn der Anfänger sich ohnehin im reinen base und stats und graphics-R auskennen muss, warum dann Komplexität erhöhen durch zusätzliche Formen der Datenhaltung? Die Vorteile greifen später, anfangs dominiert die unnötige zusätzliche Komplexität.
Das sehe ich, wie gesagt, auch so. Das dürfte ein allgemeines Problem der Didaktik in R sein. Wenn man sich mal ansieht, wie häufig sehr simple Fragestellungen hier vorgestellt werden und im Beispielcode drei, vier Pakete geladen werden, die es eigentlich nicht braucht. Mein Argument war aber, dass man fairerweise den Vergleich zu einem reinen tidyverse-Universum ziehen muss, bei man in base R nichts anderes macht, als das tidyverse zu installieren und zu laden.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von bigben »

Hufeisen hat geschrieben: Mo Okt 07, 2019 3:23 pmMein Argument war aber, dass man fairerweise den Vergleich zu einem reinen tidyverse-Universum ziehen muss, bei man in base R nichts anderes macht, als das tidyverse zu installieren und zu laden.
Das unterstellt eine Gleichwertigkeit, die nicht da ist. Klassisches R ist schon mal da. Es ist ein Fakt an dem man nicht vorbei kommt. Daneben ein zweites R zu entwickeln, das aber nicht anders zu benennen, obwohl die Zahl der Inkompatibilitäten zunimmt¹, ist eine freie Entscheidung bei der man das Leiden anderer Leute unter diesen Inkompatibilitäten inkauf nimmt. Die Frage ist, wägen die Vorteile das auf, oder müsste man das nicht ganz anders markieren?


¹Ich deute diese Fehlermeldung

Code: Alles auswählen

Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
In addition: Warning message:
Setting row names on a tibble is deprecated. 
so, dass tibbles früher mit rowNames zurecht kamen und dass durch die deprecation dieser Fehler erst entstanden ist. Das meine ich mit 'Zunehmen' der Inkompatibilitäten.

LG,
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: An opinionated view of the Tidyverse "dialect" of the R language, and its promotion by RStudio.

Beitrag von EDi »

Das meine ich mit 'Zunehmen' der Inkompatibilitäten.
Das meine ich mit breaking changes die mich schon öfters gebissen bzw. verärgert haben! Letztes Beispiel ist tidyr welches auf 1.0.0 gehoben wurde und an zentraler Stelle seine API geändert hat (gut man könnte argumentieren alles vor 1.0.0 ist instabil, aber trotzdem sehr wenig feingefühl).
Ich setzt R in einer produktiven Umgebung ein, da ich solche Späße nicht gebrauchen!

Das ist auch ein Grund warum ich das tidyverse nur sehr bewusst einsetze. data.table hat mich da noch nicht so gebissen (ich setze es aber auch nur sehr bewusst ein, das die Wartbarkeit von solchen code, data.table expertenwissen verlang). Ich nutze gefühlt auch nur ein Bruchteil von tidyverse und lade immer alles einzeln.

Bei one-off Analysen ist das was anderes... Da bin ich viel im tidyverse unterwegs (hauptsächlich purrr + dplyr).
rlang hat mich komplett von Hocker gehauen! metaprogramming eröffnet einem soviel neue Möglichkeiten. Ich weiß auch nicht ob es viele andere Sprachen gibt wo soetwas möglich ist. Es hat mich aber auch einiges (!) an Zeit gekostet durchzusteigen....

Ich habe Anfänger in den letzen 2 Jahren immer das R4DS Buch von Hadley empfohlen. Und ich muss sagen, ich war jedesmal erstaunt wie schnell sie sich zurecht gefunden haben. Wenn ich an meine Uni-Zeit denke (wo wir mit base gearbeitet haben), erscheint mir das viel effektiver - im Sinn mal hat schneller ein brauchbares Ergebnis. Das heißt aber nicht dass man mehr von der Sprache R weiß (da haben unsere Stundenten wohl mehr mitgenommen).
Wenn reshape nicht mit tibbles läuft weil man Reihen keine Namen geben darf, was glaubst Du, wieviele andere Funktionen auf CRAN auch Datenreihen mit Namen versehen und deshalb alle Fehler werfen mit Qualitäts-Fehlermeldungen der Art
Meine Worte: Solange man im tidyverse bleibt ist alles gut mit tibbles, sobald man rausgeht sollte man auch tibbles zu data.frame konvertieren. reshape verlangt nunmal eine data.frame und kein tibble (meiner Meinung nach sollte die data.frame Klasse von tibbles weggenommen werden - aber das bleibt zu diskutieren. Streng genommen entspricht es wohl der definition, im weiteren Sinne aber nicht).


Ihr seht ich bin zwiegespalten. Ich nehme einfach das besten aus allen Welten.
Das mach ich auch bei statistischen Modellen so: Bayes wo es mir das Leben einfacher macht, Frequentist wenn es ein einfaches Problem ist. Ich persönlich bin da nicht gefangen. Auch beim tidyverse - es sind gute Dinge dabei, aber definitiv nicht alles. RStudio Inc. sehe ich auch nicht als Teufel an, sondern sehr Förderlich für R. Ich weiß auch nicht, wie viel RStudio für den Hype kann. Letztendlich sind es ja viele viele unabhängig User die das vorrantreiben (siehe Bigbens Beispiel).
data.table würde niemals dorthin kommen, weil zu speziell und das eine Person gar nicht tragen kann -Rstudio ist halt schon super breit augestellt. Aber auch immer im hinblick auf ihren eigenen Profit (das alles in RStudio Connect reinpasst), aber solnage sie alles öffentlich machen und man teile davon nutzen kann - wieso nicht.

Ganz so schwarz und weiß ich es nicht. Ich mische und mach nen Barcode draus ;)

Als Microsoft Revolutin gekauft hat gab es auch viele Bedenken. Restrospektiv ist da auch nicht sooo viel bei rumgekommen (gefühlt), aber es wurde nicht schlechter - eher im Gegenteil.

Aber eine gute Diskussion hier!
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.
Antworten