# Re: [R] Dividing a vector into ntiles

From: Wiener, Matthew <matthew_wiener_at_merck.com>
Date: Fri 15 Jul 2005 - 22:59:19 EST

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

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: 1,2,3,4,5,6,7,8,9
and wanted to divide the vector into thirds I would have cut-points of 3, and 6.
Thanks,
John

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

GRECC (BT/18/GR)
Baltimore, MD 21201-1524

410-605-7119
jsorkin@grecc.umaryland.edu

[[alternative HTML version deleted]]

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