Thanks! :-)

I suppose it's obvious, but one will generally have to use a (anonymous)
function to 'unpack' the data.frame into columns, unless the function
already knows how to do this.  

I mention this because when I tested the solution on my example I got an
unexpected result -- apparently weighted.mean will operate on a 2-column
dataframe but not in the way one would expect.

data = 1:10
weights = rep(1,10)
groups = rep(c(1,2),5)
  by( data.frame(data,weights), groups, weighted.mean)
groups: 1
[1] 15
------------------------------------------------------------ 
groups: 2
[1] 17.5
> 


But

  by( data.frame(data,weights), groups, function(d) { weighted.mean(d[,1],
d[,2]) } )

does the right thing

groups: 1
[1] 5
------------------------------------------------------------ 
groups: 2
[1] 6
> 



Bert Gunter wrote:
> 
> ?by
> 

> Bert Gunter
> Genentech Nonclinical Statistics
>   
-- 
View this message in context: 
http://n4.nabble.com/tapply-for-function-taking-of-1-argument-tp1460392p1460489.html
Sent from the R help mailing list archive at Nabble.com.

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to