Philosophische Frage zum tidyverse

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

Moderatoren: EDi, jogo

Antworten
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Philosophische Frage zum tidyverse

Beitrag von ruedi_br »

Hallo zusammen,
das tidyverse beinhaltet das Paket magrittr. Das bezieht sich auf das Bild des zugehörigen Malers "ceci n'est pas une pipe" - die gemalte Pfeife ist natürlich keine echte Pfeife. Ich würde allerdings die "pipe" als Schlauch oder Rohr (also klempnerisch) zwischen zwei Verarbeitungsschritten interpretieren. Wie sehen das die Fans des tidiverse?
Grüße
Ruedi
fortune(111)
Benutzeravatar
student
Beiträge: 674
Registriert: Fr Okt 07, 2016 9:52 am

Re: Philosophische Frage zum tidyverse

Beitrag von student »

Hallo Ruedi,

m. E. ist das Pipe-Konzept der Linux-Umgebung entnommen. Z.B. wenn du eine Ausgabe nicht auf dem Bildschirm ausgeben sondern direkt als Datei speichern (umlenken) möchtest, machst Du das mit ">" (dem Pipe-Symbol). Ich bin aber ein Windows-Sklave und habe erst mit dem nVidia Jetson Nano mit Linux angefangen....
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)
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Philosophische Frage zum tidyverse

Beitrag von jogo »

Der/die/das pipe stammt schon von UNIX und ist im Sinne von Pipeline zu verstehen - also Weiterleitung (Rohr/Schlauch).
In UNIX/Linux ist mit dem pipe der Begriff des Filters verbunden. Ein Filter ist ein Programm, welches stdin liest und stdout schreibt. Viele der Programme von z.B. BSD-UNIX sind Filter. Deshalb kann man viele kleine Programme per pipe koppeln, um komplexe Aufgaben zu lösen.
Schau Dir mal die utp- (Unix Text Processing) Tools an. Man kann wirklich nur staunen, wie universell das alles ausgelegt ist.

Nachtrag:
https://de.wikipedia.org/wiki/Pipeline_ ... Geschichte

Gruß, Jörg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Philosophische Frage zum tidyverse

Beitrag von bigben »

Der Begriff Pipe steht ganz klar nicht für eine Pfeife sondern für eine Leitung, eine Leitung für Daten. Als solcher ist er viel älter als magrittr. Die Namensgebung magrittr finde ich dennoch sehr gelungen. Ein bisschen ist das wie bei Stack-basierten Programmiersprachen, wo Daten auf den Stack gelegt werden. Man muss dann der Funktion keine Daten übergeben, sie nimmt sich die zuletzt auf den Stack gelegten Daten. Man legt natürlich nicht alle Daten auf den Stack sondern immer nur das erst Argument der Funktion.

In der Tat ist die Einschätzung der Pipe eine philosophische Frage. Dem Fan stackbasierter Sprachen wird das zuwenig Stack sein. Der Fan funktionaler Progammierparadigmen wird es schätzen, dass es nicht zu Ketten kommt, in denen demselben Variablennamen immer neue Zwischenergebnisse zugeordnet werden und der Vertreter von C-ähnlichen Sprachen wird sich fragen was das soll:

Einerseits soll die Pipe dem Unerfahrenen das Lesen leichter machen, andererseits wird der Unerfahrene am meisten dadurch verwirrt, dass R jetzt nicht mehr nur eine, sondern zwei Arten von Satzbau hat.

Das copy-pasten von Codeabschnitten wird m. E. etwas einfacher, weil man weniger Gehampel mit der richtigen Anzahl geschlossener Klammern hat, das Debuggen etwas schwieriger, weil Zwischenergebnisse keinen Namen mehr haben, unter dem man sie sich anschauen kann.

ggplot war etwas wirklich Neues. Seit es das gibt, kann man in R andere und schönere Grafiken machen als vorher. Das war ein substantieller Gewinn. Die Pipe bringt mehr syntaktische Möglichkeiten auf Kosten höherer Komplexität. Substanziell ändert sie nichts.

JMTC,
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: Philosophische Frage zum tidyverse

Beitrag von EDi »

Ich habe beruflich mit (R)Code von vielen unterschiedlichen Programmierern zu tun.
Habe auch viel UNIX und data.table Hintergrund.

Für mich ist Code im tidyverse gefühlt leichter zu reviewen bzw. verständlicher da expressiver. Vermutlich führt es auch zu weniger Spaghetti?

Wenn man aber in den Bereich "tidyevaluation" kommt, dann wirds nicht besser als data.table von der Verständlichkeit. tidyeval hat mich einiges an Zeit gekostet durchzusteigen :(

Die Pipe fühlt sich sehr gewohnt an wenn man von UNIX kommt. Aber manche Auswüchse (=komischer Code für eine simple Sache) finde ich schon komisch...
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.
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Philosophische Frage zum tidyverse

Beitrag von ruedi_br »

Danke an Euch alle. Mit der Pipe hatte ich zu Unix-Zeiten auch schon zu tun (bzw. frühes MS-DOS) :)
Wahrscheinlich habe ich in den Namen des Pakets magrittr einfach zuviel hineingeheimnist.
Grüße
Ruedi
fortune(111)
Antworten