data.frame Zugriff mittels data= : Wann und wann nicht?

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

Moderatoren: EDi, jogo

Antworten
forenthomas

data.frame Zugriff mittels data= : Wann und wann nicht?

Beitrag 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
jogo
Beiträge: 2093
Registriert: Fr Okt 07, 2016 8:25 am

Re: data.frame Zugriff mittels data= : Wann und wann nicht?

Beitrag 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:

Code: Alles auswählen

help(lm)
help(plot)
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:

Code: Alles auswählen

with(customers, plot(age, credit))
behelfen

Code: Alles auswählen

Warum?
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
bigben
Beiträge: 2894
Registriert: Mi Okt 12, 2016 9:09 am

Re: data.frame Zugriff mittels data= : Wann und wann nicht?

Beitrag 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.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
forenthomas

Re: data.frame Zugriff mittels data= : Wann und wann nicht?

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1605
Registriert: Sa Okt 08, 2016 3:39 pm

Re: data.frame Zugriff mittels data= : Wann und wann nicht?

Beitrag 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...
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