Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

dataframe

r

r-faq

Let's assume that we have a data frame x which contains the columns job and income. Referring to the data in the frame normally requires the commands x$jobfor the data in the job column and x$income for the data in the income column.

However, using the command attach(x) permits to do away with the name of the data frame and the $ symbol when referring to the same data. Consequently, x$job becomes job and x$income becomes income in the R code.

The problem is that many experts in R advise NOT to use the attach() command when coding in R.

What is the main reason for that? What should be used instead?

like image 340
SavedByJESUS Avatar asked Apr 08 '12 04:04

SavedByJESUS


People also ask

What can I use instead of attach in R?

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

What does attach () do in R?

attach() function in R Language is used to access the variables present in the data framework without calling the data frame.

How can I see what is attached in R?

search() function in R Language is used to get the list of all the attached packages in the R search path.


1 Answers

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.

like image 95
Peter Ellis Avatar answered Oct 18 '22 13:10

Peter Ellis