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

Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

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

Beitrag von Athomas »

Ich bin mehr oder weniger zufällig auf einen Artikel von Norman Matloff gestossen, der fast exakt (und besser, als ich es formulieren könnte) meine Meinung zum "tidyverse" wiedergibt!

Hier ein paar Appetitanreger:
... I absolutely don't consider RStudio to be some evil cabal. I state at various places in this essay that I think their actions have been well-intentioned. Nevertheless, I believe that RStudio took a wrong turn when it decided to promote the Tidyverse, which has led to a situation in which the unity and health of the language is at stake.
In heavily promoting the Tidyverse, especially in the education realm, RStudio, with its dominance in the R field, is developing an entire new generation of R users whose skills in base-R are superficial at best, and who -- most importantly -- feel that R is the Tidyverse. This will shape the evolution of the language itself, in undesirable ways.
... RStudio is essentially operating as a monopolist. It's not a monopoly in the financial sense -- Tidyverse is not directly enhancing RStudio's profitability -- and, as noted, is not intentional. But the result is classicly monopolistic, in the sense of one product dominating a market, stifling innovation etc. The adverse impacts are very serious and worsening.
One key example of the pernicious effects of this monopolistic situation is that RStudio's promotion of the Tidyverse has alarmingly impeded the progress and adoption of technologically superior packages, notably data.table.
Bei Interesse findet Ihr den ganzen Artikel hier: [url]https://github.com/matloff/TidyverseSkeptic[/url]
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 »

Den Artikel werde ich mir später zu Gemüte führen, Deine Appetithappen treffen bei mir erstmal auf volle Zustimmung.

Danke,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

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

Beitrag von ruedi_br »

Mir gefällt die Recommendation:
Promote the teaching of base-R to beginners, treating the Tidyverse as an advanced topic.
Grüße
Ruedi
fortune(111)
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 »

Genau meine Meinung! Sehr schön beschrieben! Und wenn sich das vollends durchsetzt, werde ich auf Julia wechseln! :D ;)
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 »

Hi,

ich bin jetzt auch durch mit der Lektüre und ich habe beim Lesen ganz viel genickt. Mir gehen ziemlich viele Gedanken durch den Kopf, die noch geeordnet werden müssen.
  • Das fängt mit der Frage an, ob ein GitHub-Beitrag das richtige Forum ist, oder ob ein R Journal Editorial nicht das bessere Medium gewesen wäre? Zitierbar, dauerhaft und mit einer garantierten Leserschaft?
  • Es gibt Leute, die glauben, dass sie ihre t-Tests mit RStudio rechnen. Habe ich selbst getroffen. Eine Mitarbeiterin von mir fragte mich kürzlich, wie sie einen Datensatz bearbeiten soll. Sie weiß sicher nichts vom Tidyverse, aber sie hatte da ein Tibble. Woher? Nun, sie hatte die Daten über die Menüs in RStudio eingelesen und deshalb hatte sie ein Tibble. Und ein Tibble kann man nur haben, wenn man auch ein Tidy-Paket geladen hat, also hat RStudio ungefragt ein Paket für sie geladen. Ich sehe die angedrohte Revolution durchaus in der Realität.
  • Was wäre, wenn das RStudio-Team und das R Core Team sich tatsächlich verstreiten würden? Wer säße am längeren Hebel?
  • R ist freie Software, nicht nur wie in free beer sondern auch wie in free speech. "For a commercial entitiy to then swoop down and exploit all that free labour for its ohn profit is fraught with peril". Ist das so? Waren wir nicht alle froh über REvolution Analytics, RStudio und die R Foundation, dass R Einzug nicht nur in die Uni sondern auch ins Geschäftsleben halten konnte?
  • Wenn sich ein untrennbarer Graben zwischen R Core Group und RStudio ergäbe, wäre eine Spaltung der natürliche Weg in der Open Software World, siehe OpenOffice und LibreOffice, siehe vim und neovim. Das wird keiner wollen. Außerdem wissen wir nichts offizielles von der R Core Group. Die Tatsache, dass Hadley da nicht dazu gehört heißt ja nicht, dass die alle Matloffs Meinung sind.
  • Sieben bis acht Programmierer? Wenn man die auf eine solide OpenSource-Grundlage wie Emacs oder vim ansetzen würde, wie schnell könnte man ein konkurrenzfähiges Projekt zu RStudio erstellen? Ich habe immer gedacht, dass das R Core Team zu wenig Bemühungen zeigt, Geld einzunehmen. Würde man die User ein wenig nudgen, freiwillig Geld für R zu zahlen, könnte man einen Preis ausschreiben für die beste Emacs oder vim-Umgebung in R. RStudio ist gut, aber ist es so gut, dass es natürlicherweise konkurrenzlos ist?
  • Ist es eine Verfehlung des R Core Teams, dass es kein Forum gibt, auf dem R User so etwas diskutieren, auf dem sie dem R Core Team ihre Meinung mitteilen könnten?
  • Was kann ich ganz persönlich tun, um Matloffs Position zu stärken, sein Statement zu promoten?
Fragen über Fragen.
Vielen Dank Athomas, dass Du uns darauf Aufmerksam gemacht hast.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

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

Beitrag von jogo »

ich schließe mich hier an.
Auch schon während des vergangenen Sommersemesters grübelte ich, wie weit ich mich von base-R nach außerhalb rauslehnen sollte.

Gruß, Jörg
bigben hat geschrieben: Do Sep 26, 2019 2:39 pm Den Artikel werde ich mir später zu Gemüte führen, Deine Appetithappen treffen bei mir erstmal auf volle Zustimmung.

Danke,
Bernhard
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 Bernhard,

ich setzte noch etwas nach mit Bezug zu Deinem Post nach! Zu Deinem Punkt
Das fängt mit der Frage an, ob ein GitHub-Beitrag das richtige Forum ist, oder ob ein R Journal Editorial nicht das bessere Medium ...
habe ich den Eindruck, dass versucht wird, diesen Beitrag zu ignorieren. Vor Wochen habe ich ein Fragment des Beitrages auf MeWe (https://mewe.com/) gelesen und kommentiert. In der dortigen R-Community wurde der Beitrag ignoriert (sind auch viele Tisyverse-Anhänger dort unterwegs).

Heute habe ich diesen Beitrag zu einer Veranstaltung, wo darauf hingewiesen wurde das Tidyverse zu installieren, verlinkt.
REQUIREMENT
Bring your own laptop with R and RStudio installed, make sure that you have the tidyverse installed (install.packages("tidyverse"), or at least ggplot2)
Es erfolgte eine prompte Reaktion.

Und ja, wenn derartiges abläuft, kann es zu einer Spaltung führen (wahrscheinlich wird "man" dann politisch korrekt von "2 Strängen" sprechen). Ich bin gespannt und beobachtet das Ganze kritisch, werde aber immer klare Position beziehen.
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)
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 »

Als jemand der beides benutzt und nicht gefangen ist (ist was anders wenn man nur das eine lernt) hab ich vermutlich leicht reden...

Ich finde das Engagement von RStudio gut und wichtig für R.
RStudio entwickelt sehr viel und wendet viele Ressourcen für open source Entwicklung auf.
Sie haben dadurch R nach vorne gepuscht (auch durch ihre ganzen Top-Mitarbeiter die sie beschäfftigen / abgeworben haben) und ohne sie wäre R vermutlich nicht da wo es jetzt ist. Vorallem nicht auch bei der Akzeptanz in der Industrie. Und da hat R auch noch gut was aufzuholen - da braucht es kommerzielle Firmen die das unterstützen und das Bindeglied sind.

Vieles von den Entwicklugen sind natürlich nicht uneigennützig (z.b. dieDatenbank-Treiber von RStudio, ...)

Was es braucht ist mehr Diversität auf dem Markt.

Die anderen Player puschen nur in spezifische Richtungen, RStudio durch ihre Größe (150 Mitarbeiter?) in mehrere Richtungen:

Es gibt einige Consulting-Firmen (z.B. Open Analytics, thinkr, win-vector,...) die auch OpenSource R Entwicklung machen und R in ihrer Sparte voran bringen. Die leisten aber in der Summe wesentlich weniger als RStudio (die vermutlich mehr Spielraum haben?)?

Dann gibt es einige wenige Firmen die R unterstützen, das kommt mir aber eher vor als dass es an Personen hängt als an der Firma (z.B. H2O mit Matt Dowle, Dirk Eddelbuettel, Mar...).

Dann gibt es Unis die gut pushen (z.b. Uni Münster im GIS bereich).

Das R-Consortium ist eine gut Initiative und könnte den Markt etwas bereichern bzw. auch breit pushen https://www.r-consortium.org/projects/awarded-projects.

Davon braucht es mehr!

Einige von Norms Argumenten kann ich nicht folgen:

Das tapply Beispiel:

Code: Alles auswählen

> mtcars %>%
+ group_by(cyl,gear) %>%
+ summarize(mean(mpg))
# A tibble: 8 x 3
# Groups:   cyl [3]
    cyl  gear `mean(mpg)`
  <dbl> <dbl>       <dbl>
1     4     3        21.5
2     4     4        26.9
3     4     5        28.2
4     6     3        19.8
5     6     4        19.8
6     6     5        19.7
7     8     3        15.0
8     8     5        15.4
> tapply(mtcars$mpg,list(mtcars$cyl,mtcars$gear),mean)
      3      4    5
4 21.50 26.925 28.2
6 19.75 19.750 19.7
8 15.05     NA 15.4
Hier kann man den tapply output nur mit viel aufwand weiterverwenden. Dplyr output ist viel besser.


purrr vs R

Code: Alles auswählen

mtcars %>%
  split(.$cyl) %>%
  map(~ lm(mpg ~ wt, data = .)) %>%
  map(summary) %>%
  map_dbl("r.squared")

# output
4         6         8 
0.5086326 0.4645102 0.4229655
Here's base-R:

lmr2 <- function(mtcSubset) {
   lmout <- lm(mpg ~ wt,data=mtcSubset)
   summary(lmout)$r.squared
}
u <- split(mtcars,mtcars$cyl)
sapply(u,lmr2)
Ich hätte geschreiben:

Code: Alles auswählen

mtcars %>%
  split(.$cyl) %>%
  map(~ lmr2) 
Dann ist da kein Unterschied (außer dass ich vermutlich noch list-cols verwendet hätte um Daten, Model & Summaries in einem Object zu haben.
Vielleicht auch weil ich nicht im tidyverse gefangen bin...

Pipes sehe ich nicht als teil vom tidyverse an und sind generell nützlich (so wie auch in Linux). Ich gebe aber zu dass die auswüchse von so machen tidyverse Advokaten etwas komisch sind: https://stackoverflow.com/questions/45416543/how-to-extract-single-element-from-dataframe-using-magrittr/45416656#45416656


Ich stimme Norm zu, dass man um R effizient nutzen zu können nicht nur im tidyverse unterwegs sein sollte.
base-R ist essentiell.
tidyverse ein convenience zusatz. Im Zweifel kommt man mit base-R aber immer zum Ziel (und im tidyverse nur beding oder auf umwegen).


Was mir ganz und gar nicht an der tidyverse-Kultur gefällt (ich nenne hier explizit nicht RStudio, weil tidyverse != RStudio - das sind mehr Leute):

Das absichtliche herbeiführen von Namespace konflikten mit base-R funktionen: (z.b. lag, filter, ...). Das musste nicht sein und führt zu Problemen.

Die Ignoranz zu bestehenden Projekten: Man hätte auch data.table mit den ganze Ressourcen besser machen können (z.b. fread) anstatt neu zu machen. Ähnliches gilt für andere tidyverse Pakete die keine neue Funktionalität bringen. Soweit so gut - open source kann man machen. Aber dann das marketing / predigen gegen die Alternativen finde ich nicht gut.

Breaking changes: Ziemlich häufig und mit wenig Gefühl für die Abhängigkeiten. Hat mich schon einaar mal gebissen :(

Falsche Aussagen: Z.B. tibbles verhalten sich genauso wie data.frames (bzw. sind davon inherited). Das stimmt nicht und einige Funktionen (z.b. bei model-funktionen) liefern falsche Ergebnisse wenn man sie mit tibbles füttert. Das ist gefährlich (vorallem wenn es nicht weiß bzw. einem suggeriert wird das alles genauso funktioniert). Mein Rat: Sobald ihr aus dem tidyverse rausgeht: zu data.frame konvertieren! (Gilt aber auch für data.tables).

Die Abhängigkeiten generell: Ich würde jedem abraten library("tidyverse") zu verwenden, sondern immer nur bewusst und spezifisch.

Soweit mal meine unsortieren Gedanken... Vielleicht muss ich mir da mal noch in Ruhe Gedanken machen...
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
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 »

Nun, sie hatte die Daten über die Menüs in RStudio eingelesen und deshalb hatte sie ein Tibble. Und ein Tibble kann man nur haben, wenn man auch ein Tidy-Paket geladen hat, also hat RStudio ungefragt ein Paket für sie geladen.
Das stimmt so nicht.

Wenn du text Dateiein einliest, kannst du base oder readr auswählen.
In beiden Fällen sieht man den ausgeführten code vorab und in der Console (welche library(readr) beinhalten). Das gleiche gilt auch für excel.
Bei base wird kein tibble erstellen.

Ungefragt war es also nicht. Der Nutzer sieht vorher was er ausführt und darin steht was geladen wird. Wenn der Nutzer auf OK & Import klickt, dann ist das zustimmung das diese paket geladen werden soll.
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.
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 »

EDi hat geschrieben: Fr Sep 27, 2019 1:42 amUngefragt war es also nicht.
Touché, das war zu streng formuliert. Wie gesagt weiß diese heranwachsende Wissenschaftlerin (oder auch nicht, das muss sich noch finden. Vielleicht wird sie nach Ende der Projektlaufzeit auch wieder Therapeutin) noch nichts über das Tidyverse und weiß daher nichts über readr und Tibbles und vertraut beim Benutzen von Menüs einfach mal allen Voreinstellungen und klickt nichts an, um nichts kaputt zu machen. So wie viele SPSS-User auch nicht alle Häkchen und Optionen kennen, die da in den Fenstern für die Analyse ihrer Wahl auftauchen.
Du hast Recht, dass das nicht ungefragt war, ich behalte aber im Kern auch Recht: das ist ein Beispiel wie RStudio genutzt wird, um das Tidyverse zum Normalfall für den Anfänger zu machen.
Du hast geschrieben, dass man beim Verlassen des Tidyverse das Tibble abschütteln sollte und dafür wäre eine Voraussetzung, dass man wissend an ein Tibble gekommen ist.

Als ich oben R Foundation geschrieben hatte meinte ich übrigens R Consortium ;)

Ich sehe das Problem in der Tat nicht darin, dass RStudio das Tidyverse pusht. Das Problem besteht in Monopolistenstatus. Das kostenlose und sehr gute RStudio hat die Entwicklung von freien Alternativen gebremst. Nicht das es keine gäbe¹ ², aber wie sollen sie den nötigen Schwung bekommen? Die mit R ausgelieferte RGui ist ein Feigenblatt und dass jemand R mit Emacs benutzt ist tatsächlich eine Nachricht.

LG,
Bernhard

Fußnote
¹ https://jstaf.github.io/2018/03/25/atom-ide.html
² https://github.com/jalvesaq/Nvim-R
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten