[R] median of binned values

Martin Tomko martin.tomko at geo.uzh.ch
Wed Dec 19 11:17:48 CET 2007


Thank you, Chuck,
would you mind commenting a bit on the code, it is not all clear... HOw 
would you go to retrieve only the numeric value (not the category name)?
I am just starting with R, and the functionality of replicate and levels 
is not quite clear. I tried the documentation, but am not any wiser. 
What if I had a vector v <- vector(c(1,10,100,1000,10000)) and wanted to 
perform it on that?

Thanks a lot
Martin


Chuck Cleland wrote:
> Martin Tomko wrote:
>> Dear list,
>> I have a vector (array, table row, whatever is best) of frequency values 
>> for categories (or bins), and I need to find the median category. 
>> Trivial to do by hand, but I was wondering if there is a means to  do it 
>> in R in an elegant way.
>>
>> The obvious medioan(vector) returns the median frequency for the binns, 
>> and that is not what I want. i.e,:
>>              freq
>> cat1    1
>> cat2   10  
>> cat3   100  
>> cat4   1000
>> cat5   10000
>>
>> I want it to return cat5, instead of cat3.
> 
> df <- data.frame(binname = as.factor(paste("cat", 1:5, sep="")),
>                  freq = c(1,10,100,1000,10000))
> 
> df
>   binname  freq
> 1    cat1     1
> 2    cat2    10
> 3    cat3   100
> 4    cat4  1000
> 5    cat5 10000
> 
> with(df, levels(binname)[median(rep(as.numeric(binname), freq))])
> [1] "cat5"
> 
>> Thanks a lot
>> Martin
>>
>> ______________________________________________
>> 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. 
> 

-- 
Martin Tomko
Postdoctoral Research Assistant

Geographic Information Systems Division
Department of Geography
University of Zurich - Irchel
Winterthurerstr. 190
CH-8057 Zurich, Switzerland

email: 	martin.tomko at geo.uzh.ch
site:	http://www.geo.uzh.ch/~mtomko
mob: 	+41-788 629 558
tel: 	+41-44-6355256
fax: 	+41-44-6356848



More information about the R-help mailing list