Or this: > str(x) 'data.frame': 100 obs. of 6 variables: $ x1: num 0.4548 0.0352 0.6353 0.6017 0.8588 ... $ x2: num 0.849 0.335 0.986 0.617 0.212 ... $ x3: num 1.35 0.46 1.67 1.23 1.14 ... $ x4: num 2.67 0.91 3.31 2.48 2.28 ... $ x5: Factor w/ 3 levels "1","2","3": 3 1 3 3 3 1 2 3 3 1 ... $ x6: num 2 2 2 2 2 2 1 2 2 2 ...
> sapply(x[,sapply(x,is.numeric)], function(x) quantile(as.numeric(x), c(0.01, 0.99))) x1 x2 x3 x4 x6 1% 0.0351777 0.007628441 0.225533 0.4459064 1 99% 0.9938919 0.964901423 1.826894 3.6226944 2 Hope this helps. Andrija On Mon, Oct 31, 2011 at 2:09 PM, aajit75 <aaji...@yahoo.co.in> wrote: > When data contains both factor and numeric variables, how to get quartiles > for all numeric variables? > n <- 100 > x1 <- runif(n) > x2 <- runif(n) > x3 <- x1 + x2 + runif(n)/10 > x4 <- x1 + x2 + x3 + runif(n)/10 > x5 <- factor(sample(c('a','b','c'),n,replace=TRUE)) > x6 <- factor(1*(x5=='a' | x5=='c')) > data1 <- cbind(x1,x2,x3,x4,x5,x6) > data <- data.frame(data1) > > data <- within(data,{x5 <- factor(x5)}) > x <- data > > qs <- sapply(x, function(x) quantile(x, c(0.01, 0.99))) > > I get an error: Error in quantile.default(x, c(min_pct, max_pct)) : factors > are not allowed > > Thanks for the help. > > > -- > View this message in context: > http://r.789695.n4.nabble.com/How-to-get-Quartiles-when-data-contains-both-numeric-variables-and-factors-tp3955750p3955750.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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.