[R] Dividing a vector into ntiles

Wiener, Matthew matthew_wiener at merck.com
Fri Jul 15 14:59:19 CEST 2005

You could try using "cut":
> cut(1:9, breaks = 3)
[1] (0.992,3.66] (0.992,3.66] (0.992,3.66] (3.66,6.34]  (3.66,6.34] 
[6] (3.66,6.34]  (6.34,9.01]  (6.34,9.01]  (6.34,9.01] 
Levels: (0.992,3.66] (3.66,6.34] (6.34,9.01]

Quantile is another possible solution to get break points:
> quantile(1:9, p = c(0, .33, .66, 1))
  0%  33%  66% 100% 
1.00 3.64 6.28 9.00 
You could use rounding if you want the integers, or use the given cutpoints.

Hope this helps,

Matt Wiener

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of John Sorkin
Sent: Friday, July 15, 2005 8:48 AM
To: r-help at stat.math.ethz.ch
Subject: [R] Dividing a vector into ntiles

R 2.1.1
Win 2k
Would someone suggest a method (or methods) that can be used to
determine ntile cutpoints of a vector, i.e. to determine values that can
be used to divide a vector into thirds such as 0-33 centile, 34-66
centile, 67-100 centile. If for example I had a vector:
and wanted to divide the vector into thirds
I would have cut-points of 3, and 6.
John Sorkin M.D., Ph.D.
Chief, Biostatistics and Informatics
Baltimore VA Medical Center GRECC and
University of Maryland School of Medicine Claude Pepper OAIC
University of Maryland School of Medicine
Division of Gerontology
Baltimore VA Medical Center
10 North Greene Street
Baltimore, MD 21201-1524
jsorkin at grecc.umaryland.edu

	[[alternative HTML version deleted]]

R-help at stat.math.ethz.ch mailing list
PLEASE do read the posting guide!

More information about the R-help mailing list