22/08/02 1:16:15, Frank E Harrell Jr <fharrell at virginia.edu> escribi:
On Wed, 21 Aug 2002 12:10:44 -0400
kjetil halvorsen <kjetilh at umsanet.edu.bo> wrote:
?weighted.mean
?tapply
Q8 <- rnorm(100)
Faculty <- factor(c(rep(1,50), rep(2,50)))
w <- 1:100
tapply(Q8, Faculty, weighted.mean, w)
1 2
-0.0976302 -0.1457895
Kjetil Halvorsen
Tim Wilson wrote:
Hi everyone,
I've got a dataframe called 'faculty'. I want to do a weighted mean on
the column called 'Q8' weighted by the contents of column 'CETP'. In
addition, I need to operate on the result of splitting 'faculty'
according to the contents of a column 'FACULTY'. For example
lapply(split(faculty$Q8, faculty$FACULTY), mean)
$"1"
[1] 2.2
$"2"
[1] 1.888889
gives the mean of 'Q8' after splitting by 'FACULTY'. When I try this
with weighted.mean, it doesn't work because I don't know how to specify
the result of the split as the argument for weighted.mean. For example,
lapply(split(faculty$Q8, faculty$FACULTY), weighted.mean)
$"1"
[1] 2.2
$"2"
[1] 1.888889
gives the same results as above because I haven't specified the vector
to use for weighting. The following doesn't work at all for the obvious
reason that weighted.mean is not operating on the result of the split.
lapply(split(faculty$Q8, faculty$FACULTY), weighted.mean(faculty$Q8,
faculty$CETP))
Error in match.fun(FUN) : not function, character, or symbol:
"weighted.mean(faculty$Q8, faculty$CETP)"
Also take a look at the many weighted stats functions in the Hmisc library. Do
library(Hmisc)
?wtd.mean
-Frank
--
Frank E Harrell Jr Prof. of Biostatistics & Statistics
Div. of Biostatistics & Epidem. Dept. of Health Evaluation Sciences
U. Virginia School of Medicine http://hesweb1.med.virginia.edu/biostat
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._