Thanks to both of you! I learned something new from both of your posts :-) And you were both right, my example numbers were wrong! I accidentally computed them based on 0.25 * mean instead of 0.2 * mean.
Thanks again! Simon On Wed, Dec 5, 2012 at 4:07 AM, arun <smartpink...@yahoo.com> wrote: > HI, > > I am not sure the output you wanted is correct: > > " > sample1 sample2 sample3 > 1 1.0 0 0.5 > " > > because > 0.2*colMeans(x[,-4]) > sample1 sample2 sample3 > # 28.40 24.08 21.36 > > > This might help you: > apply(x[-4],2,function(y) length(y[y <0.2*mean(y) & > x$class=="a"])/length(x[x$class=="a"])) > #sample1 sample2 sample3 > # 0.0 0.0 0.5 > A.K. > > > > ----- Original Message ----- > From: Simon <simonzm...@gmail.com> > To: r-help@r-project.org > Cc: > Sent: Tuesday, December 4, 2012 4:49 AM > Subject: [R] computing marginal values based on multiple columns? > > Hello all, > > I have what feels like a simple problem, but I can't find an simple > answer. Consider this data frame: > > > x <- data.frame(sample1=c(35,176,182,193,124), > sample2=c(198,176,190,23,15), sample3=c(12,154,21,191,156), > class=c('a','a','c','b','c')) > > > x > sample1 sample2 sample3 class > 1 35 198 12 a > 2 176 176 154 a > 3 182 190 21 c > 4 193 23 191 b > 5 124 15 156 c > > Now I wish to know: for each sample, for values < 20% of the sample mean, > what percentage of those are class a? > > I want to end up with a table like: > > sample1 sample2 sample3 > 1 1.0 0 0.5 > > I can calculate this for an individual sample using this rather clumsy > expression: > > length(which(x$sample1 < mean(x$sample1) & x$class=='a')) / > length(which(x$sample1 < mean(x$sample1))) > > I'd normally propagate it across the data frame using apply, but I > can't because it depends on more than one column. > > Any help much appreciated! > > Cheers, > > Simon > > [[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. > > [[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.