[R] quantiles on rows of a matrix
David Winsemius
dwinsemius at comcast.net
Thu Jul 8 01:28:53 CEST 2010
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 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.
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list