[Rd] attach and object masking

Martyn Plummer plummer at iarc.fr
Fri Jun 10 18:12:33 CEST 2005


The library() function prints an information message when objects are
masked on the search path by (or from) a newly attached package.  The
attach() function, however, doesn't.  Is there a good reason for this?
I have adapted the machinery for checking conflicts used in the library
() function to attach().  If there are no objections, I will check this
into R-devel.

I have seen new users get into terrible trouble with attach, e.g. 
1) attaching the same database multiple times, or
2) Masking a vector in an attached data frame with a transformed version
in the global environment and *then* re-running a script that transforms
the transformed variable. For example, run this snippet twice and you
might get a surprise.

foo <- data.frame(x=1:10)
attach(foo)
x <- x/2

A warning would certainly help.

Incidentally, (1) occurs in the example for the beavers data set. I
didn't find any other problems.



More information about the R-devel mailing list