From: Adaikalavan Ramasamy <ramasamy_at_cancer.org.uk>

Date: Wed 27 Jul 2005 - 08:21:15 EST

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Jul 27 08:27:40 2005

Date: Wed 27 Jul 2005 - 08:21:15 EST

Why not write a function ? Here is one.

mytable <- function(x, br){

n <- length(br)

tb <- table( cut( x, breaks=c(-Inf, br, Inf) ) ) tb <- 100 * tb / sum(tb)

tb.n <- paste( c("", br), c(br, ""), sep=" < x <= " ) tb.n[1] <- paste("x <= ", br[1], sep="") tb.n[n+1] <- paste("x > ", br[n], sep="")

names(tb) <- tb.n

return(tb)

}

mytable( store, br=c(0.8, 1.2) )

x <= 0.8 0.8 < x <= 1.2 x > 1.2 25 25 50

You might want to do a bit more testing especially at the break points. However I do not like the output of the above because the names of the table overlaps. Here is another function that might have nicer output.

mytable2 <- function(x, br){

tb <- as.matrix( mytable( x=x, br=br ) )
colnames(tb) <- "Percentage"

return(tb)

}

mytable2( store, br=c(0.8, 1.2) )

Percentage x <= 0.8 25 0.8 < x <= 1.2 25 x > 1.2 50

Hope this helps.

Regards, Adai

On Tue, 2005-07-26 at 15:48 -0400, jhainm@fas.harvard.edu wrote:

*> Hi,
**>
*

> I am looking for an elegant way to transform a vector into percentages of values

*> that meet certain criteria.
**>
**> store<-c(1,1.4,3,1.1,0.3,0.6,4,5)
**>
**> # now I want to get the precentages of values
**> # that fall into the categories <=M , >M & <=N , >N
**> # let
**> M <-.8
**> N <- 1.2
**> # In my real example I have many more of these cutoff-points
**>
**> # What I did is:
**>
**> out <- matrix(NA,1,3)
**>
**> out[1,1] <- ( (sum(store<=M )) /length(store) )*100
**> out[1,2] <- ( (sum(store> M & store<= N )) /length(store) )*100
**> out[1,3] <- ( (sum(store> N )) /length(store) )*100
**>
**> colnames(out)<-c("percent<=M","percent>M & <=N","percent>N")
**> out
**>
**> But this gets very tedious if I have many cutoff-points. Does anybody know a
**> more elegant way to do this task?
**>
**> Thanks so much.
**>
**> Cheers,
**> Jens
**>
**> ______________________________________________
**> R-help@stat.math.ethz.ch mailing list
**> https://stat.ethz.ch/mailman/listinfo/r-help
**> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
**>
*

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Jul 27 08:27:40 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:34:01 EST
*