bitte kein attach()
Verfasst: Fr Okt 07, 2016 7:31 pm
Auch wenn in vielen Einführungen auf den ersten Seiten erwähnt wird, wie bequem doch die Arbeit wird, wenn man attach(DataFrame) schreibt, es ist gefährlich. Diese Funktion verändert den Suchpfad, das heißt es verändert die Art und Weise, wie (bei gegebenem Objektnamen) nach einem Objekt gesucht wird.
Für alle, die nicht genau wissen, was ein Suchpfad (searchpath) ist oder wie R nach dem richtigen Objekt sucht, wenn dessen Name im Code steht, bedeutet das:
Finger weg von dieser Funktion
... und alle anderen (also die, die es wissen ...) werden schon deshalb diese Funktion nicht verwenden.
(ich krame demnächst noch ein paar Beispiele raus, die zeigen, wie man sich ganz toll ins Knie schießen kann bei der Verwendung dieser wirklich bösen Funktion)
Womit kann ich mich vom ewigen Tippen von DataFrame$... erleichtern
Da gibt es einige sehr schmucke Möglichkeiten:
1. viele Funktionen haben einen Parameter data= (z.B. lm() und viele plot-Funktionen). Tauchen in den anderen Argumenten der Funktion irgendwelche Objeknamen auf z.B. var1, dann sucht R das passende Objekt zuerst in DataFrame, wenn als Parameter data=DataFrame angegeben wurde. (In diesem Fall wird also DataFrame$var1 als Objekt für den Namen var1 gefunden)
2. Ähnlich ist das bei den Funktionen with(), within() und transform().
Gruß, Jörg
Für alle, die nicht genau wissen, was ein Suchpfad (searchpath) ist oder wie R nach dem richtigen Objekt sucht, wenn dessen Name im Code steht, bedeutet das:


... und alle anderen (also die, die es wissen ...) werden schon deshalb diese Funktion nicht verwenden.

(ich krame demnächst noch ein paar Beispiele raus, die zeigen, wie man sich ganz toll ins Knie schießen kann bei der Verwendung dieser wirklich bösen Funktion)
Womit kann ich mich vom ewigen Tippen von DataFrame$... erleichtern

Da gibt es einige sehr schmucke Möglichkeiten:
1. viele Funktionen haben einen Parameter data= (z.B. lm() und viele plot-Funktionen). Tauchen in den anderen Argumenten der Funktion irgendwelche Objeknamen auf z.B. var1, dann sucht R das passende Objekt zuerst in DataFrame, wenn als Parameter data=DataFrame angegeben wurde. (In diesem Fall wird also DataFrame$var1 als Objekt für den Namen var1 gefunden)
2. Ähnlich ist das bei den Funktionen with(), within() und transform().
Gruß, Jörg