Seite 1 von 1
data.frame Zugriff mittels data= : Wann und wann nicht?
Verfasst: Mi Aug 30, 2017 3:15 pm
von forenthomas
Hallo,
gibt es eigentlich eine allgemeine Regel, wann bzw. in welchen Funktionen man auf data.frames mittels data= zugreifen kann, wann nicht? Also
lm(age ~ credit, data=customers) - geht
plot(age, credit, data=customers) - geht nicht
Warum?
Gruß und Danke vorweg, Thomas
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
Verfasst: Mi Aug 30, 2017 3:43 pm
von jogo
Hallo Thomas,
forenthomas hat geschrieben: Mi Aug 30, 2017 3:15 pm
gibt es eigentlich eine allgemeine Regel, wann bzw. in welchen Funktionen man auf data.frames mittels data= zugreifen kann, wann nicht? Also
lm(age ~ credit, data=customers) - geht
plot(age, credit, data=customers) - geht nicht
Wann
data= geht und wann nicht wird durch die Dokumentation beantwortet:
Gelegentlich hat eine Funktion auch verschiedene Aufrufformen, die im Abschnitt
Usage gezeigt werden (hier fällt mir die Funktion aggregate() ein). Leider gibt es keine allgemeingültige Regel.
Notfalls kann man sich noch mit:
behelfen
Also, warum es keine allgemeine Regel gibt, lässt sich zumindest beantworten:
R ist historisch bedingt nicht einheitlich aufgebaut. Einige Zusatzpakete versuchen diesen Mangel für bestimmte Bereiche der Funktionalität zu beheben. Oftmals stand bei der Konstruktion neuerer Pakete als Designziel auf der Liste:
einheitliche Aufrufkonvention der Funktionen in diesem Paket.
Grüße, Jörg
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
Verfasst: Mi Aug 30, 2017 4:09 pm
von bigben
Hallo forenthomas,
schön, dass Du hierher gefunden hast.
Consistency is good. Consistency reduces the work that your users need to
expend. Consistency reduces bugs.
One form of consistency is the order and names of function arguments. Surprising
your users is not a good idea|even if the universe of your users is of
size 1.
Das ist ein Zitat aus einem sehr guten Buch zu R. Leider ist R sehr erkennbar nicht aus einem Guss, sondern über viele Jahre gewachsen - und nicht einheitlich gewachsen. Leider wird das durch einen der einflussreichsten Menschen in der R-Szene derzeit auch noch sehr gepuscht, der seine, zugegebenermaßen oft sehr guten, aber eben nicht traditionsbewussten Ideen, als neue Generation von Inkonsistenzen, in beliebten Paketen in R so verbreitet, dass man kaum um sie herum kommt.
Wenn Du Dich in R irgendwann einigermaßen eingefühlt hast und dort wohl fühlst, empfehle ich dringend das Buch "R Inferno", aus dem das obige Zitat stammt, und dessen PDF man hier kostenlos herunterladen darf:
http://www.burns-stat.com/pages/Tutor/R_inferno.pdf
Darin wird auf viele der "lange schon"-Inkonsistenzen und Schwierigkeiten mit dem Erbe der Jahrzehnte ausführlich eingegangen, und man kann manche Stolperfalle damit vermeiden. Sicher nicht das erste oder zweite Buch über R, das man lesen sollte, aber irgendwo zwischen dem dritten und dem zehnten lohnt es sich bestimmt.
LG,
Bernhard
PS:
There is a large amount of documentation about R, both
ocial and contributed, and in various formats. A large amount of documentation
means that it is often nontrivial to find what you are looking for; especially
when frustration is setting in and blood pressure is rising.
Breathe.
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
Verfasst: Mi Aug 30, 2017 4:58 pm
von forenthomas
Hallo,
ich hatte das schon genau so befürchtet. Es ist auch wohl ein altbekanntes Problem von Open Source Software allgemein, das im System begründet liegt.
Ich arbeite mich gerade durch
- Field: Discovering Statistics using R
- Chapman, Mc Donnell Feit: R for Marketing Research and Analytics
Beide meiner Meinung nach sehr gut, wenn auch mit sehr unterschiedlichen Ansätzen und Akzenten.
Gruß, Thomas
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
Verfasst: Mi Aug 30, 2017 9:19 pm
von EDi
forenthomas hat geschrieben: Mi Aug 30, 2017 3:15 pm
Hallo,
gibt es eigentlich eine allgemeine Regel, wann bzw. in welchen Funktionen man auf data.frames mittels data= zugreifen kann, wann nicht? Also
lm(age ~ credit, data=customers) - geht
plot(age, credit, data=customers) - geht nicht
Warum?
Gruß und Danke vorweg, Thomas
Ich würde sagen, data= wird in den meisten Fällen verwendet wenn man auch die Formelnotation/methode verwendet (zumindest in base-r) . Weil irgendwoher müssen die Daten welche die Formel beschreibt je herkommen...