Why is it not advisable to use attach() in R, and what should I use instead?

When to use it:

I use attach() when I want the environment you get in most stats packages (eg Stata, SPSS) of working with one rectangular dataset at a time.

When not to use it:

However, it gets very messy and code quickly becomes unreadable when you have several different datasets, particularly if you are in effect using R as a crude relational database, where different rectangles of data, all relevant to the problem at hand and perhaps being used in various ways of matching data from the different rectangles, have variables with the same name.

The with() function, or the data= argument to many functions, are excellent alternatives to many instances where attach() is tempting.

Leave a Comment