On Jul 7, 2010, at 6:52 PM, Jim Bouldin wrote:


I'm trying to obtain the mean of the middle 95% of the values from each row of a matrix (that is, the highest and lowest 2.5% of values in each row
are removed before calculating the mean).

A winsorized.mean?


 I am having all sorts of
problems with this; for example the command:

apply(matrix1,1,function(x) quantile(c(.05,.90),na.rm=T))

returns the exact same quantile values for each row, which is clearly
wrong.

You gave quantile the same argument each time. Try:
apply(matrix1,1,function(x)  quantile( x, probs= c(.05,.90),na.rm=T) )

Or:

apply(matrix1, 1,  quantile, probs= c(.05,.90), na.rm=T )

But even if the values were right, I'm not sure how I would then
translate those quantile values into another apply function to get the
mean, since they differ from row to row.

That would be a problem. There is a path to success but it would so much easier if someone already developed a function, wouldn't it?

RSiteSearch("winsorized")


I also tried:
apply(matrix,1,mean,na.rm=T,trim=.05))
and the trim argument was simply ignored


Stumped. Any help appreciated. Thanks.


Jim Bouldin, PhD
Research Ecologist
Department of Plant Sciences, UC Davis
Davis CA, 95616
530-554-1740

______________________________________________
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.

David Winsemius, MD
West Hartford, CT

______________________________________________
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