[R] Selecting maximums between different variables

Berend Hasselman bhh at xs4all.nl
Thu Oct 17 19:41:22 CEST 2013


On 17-10-2013, at 18:48, Tim Umbach <tim.umbach at hufw.de> wrote:

> Hi there,
> 
> another beginners question, I'm afraid. Basically i want to selct the
> maximum of values, that correspond to different variables. I have a table
> of oil production that looks somewhat like this:
> 
> oil <- data.frame( YEAR = c(2011, 2012),
>                   TX = c(20000, 30000),
>                   CA = c(40000, 25000),
>                   AL = c(20000,
> 21000),
> 
>                   ND = c(21000,60000))
> 
> Now I want to find out, which state produced most oil in a given year. I
> tried this:
> 
> attach(oil)
> last_year = oil[ c(YEAR == 2012), ]
> max(last_year)
> 

For a single year do

year <- which(oil[,"YEAR"]==2011)
oil[year,which.max(oil[year,]),drop=FALSE]

In the help look at base::[.data.frame	

Berend


> Which works, but it doesnt't give me the corresponding values (i.e. it just
> gives me the maximum output, not what state its from).
> So I tried this:
> 
> oil[c(oil == max(last_year)),]
> and this:
> oil[c(last_year == max(last_year)),]
> and this:
> oil[which.max(last_year),]
> and this:
> last_year[max(last_year),]
> 
> None of them work, but they don't give error messages either, the output is
> just "NA". The problem is, in my eyes, that I'm comparing the values of
> different variables with each other. Because if i change the structure of
> the dataframe (which I can't do with the real data, at least not with out
> doing it by hand with a huge dataset), it looks like this and works
> perfectly:
> 
> oil2 <- data.frame (
>  names = c('YEAR', 'TX', 'CA', 'AL', 'ND'),
>  oil_2011 = c(2011, 20000, 40000, 20000, 21000),
>  oil_2012 = c(2012, 30000, 25000, 21000, 60000)
>  )
> attach(oil2)
> oil2[c(oil_2012 == max(oil_2012)),]
> 
> Any help is much appreciated.
> 
> Thanks, Tim Umbach
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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