attach {base} | R Documentation |
The database is attached to the R search path. This means that the database is searched by R when evaluating a variable, so objects in the database can be accessed by simply giving their names.
attach(what, pos = 2, name = deparse(substitute(what)))
what |
“database”. This may currently be a
data.frame or list or a R data file created with
save . |
pos |
integer specifying position in search() where
to attach. |
name |
alternative way to specify the database to be attached. |
When evaluating a variable or function name R searches for
that name in the databases listed by search
. The first
name of the appropriate type is used.
By attaching a data frame to the search path it is possible to refer
to the variables in the data frame by their names alone, rather than
as components of the data frame (eg in the example below,
height
rather than women$height
).
By default the database is attached in position 2 in the search path,
immediately after the user's workspace and before all previously
loaded packages and previously attached databases. This can be altered
to attach later in the search path with the pos
option, but you
cannot attach at pos=1
.
Note that by default assignment is not performed in an attached
database. Attempting to modify a variable or function in an attached
database will actually create a modified version in the user's
workspace (the R global environment). If you use
assign
to assign to an attached list or data frame, you
only alter the attached copy, not the original object.
For this reason attach
can lead to confusion.
The environment
is returned invisibly with a
"name"
attribute.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
library
, detach
, search
,
objects
, environment
, with
.
data(women) summary(women$height) ## refers to variable 'height' in the data frame attach(women) summary(height) ## The same variable now available by name height <- height*2.54 ## Don't do this. It creates a new variable detach("women") summary(height) ## The new variable created by modifying 'height' rm(height)