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
data.frame Zugriff mittels data= : Wann und wann nicht?
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
Hallo Thomas,
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
Wann data= geht und wann nicht wird durch die Dokumentation beantwortet: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
Code: Alles auswählen
help(lm)
help(plot)
Notfalls kann man sich noch mit:
Code: Alles auswählen
with(customers, plot(age, credit))
Code: Alles auswählen
Warum?
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?
Hallo forenthomas,
schön, dass Du hierher gefunden hast.
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:
schön, dass Du hierher gefunden hast.
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.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.
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.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
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
Gruß, Thomas
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
Gruß, Thomas
Re: data.frame Zugriff mittels data= : Wann und wann nicht?
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...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
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
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
