On 11-Nov-04 Wei Yang wrote: > Hi, > > I have a list of numbers. For each of the numbers, I take > sum of squares of the numbers centered on the number chosen. > If it is less than a certain constant, I will take the > average of the numbers chosen.
Assuming I've understood this correctly, one approach is mean(v[k > sapply(v, function (x) sum((v-x)^2))]) where v is the vector of numbers and k is the "certain constant". However, this formulation requires O(length(v)^2) time, which means that it is not a particularly efficient way to do it. What to me is far more interesting is WHY is this calculation to be done? If you think about it, if v is sorted, the "k > sapply(...)" part will be FALSE... TRUE... FALSE... so this is an arithmetic mean of a "central" subset of values. Why not just use an ordinary trimmed mean (see ?mean to find out about the trim= argument)? Or an M-estimator if some other robust estimate of location is wanted? I ask this in all seriousness, because in the few quick experiments I tried, this estimator was _further_ from the population mean than the classical mean. Is that the point of it? ______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html