[R] Question: how to build a subset to do separate calculations

Erik Iverson iverson at biostat.wisc.edu
Thu Jul 24 22:33:01 CEST 2008

Spencer -

Spencer wrote:
> Dear R Experts,
> I am trying to create several subsets that I want to use as separate 
> datasets. After separate subsets are created for each country, I want to 
> do some calculations for each. I did the following:
> data <- data.frame(na.omit(read.spss("trial.sav")))
> attach (data)

You might not want to call it 'data' since 'data' is the name of a 
function in base R.

Also, the usual advice is to avoid attaching data.frames to the search 
path, for the exact reasons that happen to you below.

> Netherlands <- subset(data, COUNTRY = "NETHERLANDS")
> attach(Netherlands)
> But after this step, when I check the summary statistics for 
> "Netherlands," what returns is the summary for the original dataset. 

Try typing search() after attaching this to see why.  You may have also 
seen a message about objects being masked when you used the second 
'attach' command; at least I do in my version of R.

> I've also tried defining Netherlands as Netherlands <- 
> data.frame(subset(data, COUNTRY = "NETHERLANDS")), but get the same result.
> Any help would be greatly appreciated!

Don't use attach.  If you want to do summaries by country, there are 
many simpler ways.  See ?tapply, ?aggregate, and ?by for instance.


> Spencer
> ------------------------------------------------------------------------
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list