[R] no doubt a dumb question, but..
Martin Maechler
maechler at stat.math.ethz.ch
Tue Nov 9 09:07:38 CET 2004
>>>>> "Marc" == Marc Schwartz <MSchwartz at MedAnalytics.com>
>>>>> on Mon, 08 Nov 2004 22:27:47 -0600 writes:
Marc> On Mon, 2004-11-08 at 21:56, Dr. John R. Vokey wrote:
>> Yes, I am a newbie at R, but it is not the complex
>> commands in R that have me baffled, but simple data
>> commands. For example, why does something like:
>>
>> > plot(Girth ~ Height)
>>
>> *not* work after a command that allegedly loads the data:
>>
>> > data(trees)
>>
>> with the error message:
>>
>> Error in eval(expr, envir, enclos) : Object "Girth" not
>> found
>>
>> but does work after the command:
>>
>> > attach(trees)
>>
>> ?
Marc> As per ?attach:
Marc> "By attaching a data frame to the search path it is
Marc> possible to refer to the variables in the data frame
Marc> by their names alone, rather than as components of the
Marc> data frame (eg in the example below, height rather
Marc> than women$height)."
Marc> data(trees) simply loads the dataset, but does not
Marc> place it in the search path, which is what
Marc> attach(trees) does.
Marc> Prior to using attach(trees), you would need to use:
Marc> plot(trees$Girth ~ trees$Height)
Marc> to tell R that the variables Girth and Height are in
Marc> the data frame called 'trees'.
Yes, thank you, Marc!
For the specific case at hand, however, the recommdend way is to use
plot(Girth ~ Height, data = trees)
Further note that many of us try to avoid attach()ing data frames
(most of the time; not always) and we have provided the nice alternative
with( <data> , <expression_body> )
So, for the current example, you could also say
with(trees, plot(Girth ~ Height))
The main advantage of with(): Only inside it, the components of
'trees' are visible - no need to remember to detach() ;
see also help(with) and its examples.
Martin Maechler
More information about the R-help
mailing list