Crear una variable categórica en R basada en el rango

Tengo un dataframe con una columna de enteros que me gustaría utilizar como referencia para crear una nueva variable categórica. Quiero dividir la variable en tres grupos y establecer los intervalos por mí mismo (es decir, 0-5, 6-10, etc.). Intenté cut pero eso divide la variable en grupos según una distribución normal y mis datos están sesgados a la derecha. También intenté usar sentencias if / then, pero esto arroja un valor verdadero / falso y me gustaría mantener mi variable original. Estoy seguro de que hay una manera simple de hacerlo, pero parece que no puedo resolverlo. ¿Algún consejo sobre una forma simple de hacer esto rápidamente?

Tenía algo en mente como este:

 x x.range 3 0-5 4 0-5 6 6-10 12 11-15 

La respuesta de Ian ( corte ) es la forma más común de hacer esto, hasta donde yo sé.

Prefiero usar tejas , del paquete Lattice

el argumento que especifica los intervalos de binning me parece un poco más intuitivo.

usted usa la teja como tal:

 # mock some data data = sample(0:40, 200, replace=T) a = c(0, 5);b = c(5,9);c = c(9, 19);d = c(19, 33);e = c(33, 41) my_bins = matrix(rbind(a, b, c, d, e), ncol=2) # returns: (the binning intervals i've set) [,1] [,2] [1,] 0 5 [2,] 5 9 [3,] 9 19 [4,] 19 33 [5,] 33 41 shx = shingle(data, intervals=my_bins) #'shx' at the interactive prompt will give you a nice frequency table: # Intervals: min max count 1 0 5 23 2 5 9 17 3 9 19 56 4 19 33 76 5 33 41 46 
 x <- rnorm(100,10,10) cut(x,c(-Inf,0,5,6,10,Inf))