

   CCoonnvveerrtt NNuummeerriicc ttoo FFaaccttoorr

        cut(x, breaks, labels=NULL, right=TRUE, dig.lab=3)

   AArrgguummeennttss::

          x: a numeric vector which is to be converted to a
             factor by cutting.

      break: either a vector of cut points or number giving the
             number of intervals which `x' is to be cut into.

     labels: labels for the levels of the resulting category.
             By default labels are constructed using `"(a,b]"'
             interval notation.

      right: logical, indicating if the intervals should closed
             on the right (and open on the left) or vice versa.

    dig.lab: integer which is used when labels are not given.
             It determines the number of digits used in format-
             ting the break numbers.

   VVaalluuee::

        `cut' divides the range of `x' into intervals and codes
        the values in `x' according to which interval they
        fall.  The leftmost interval corresponds to level one,
        the next leftmost to level two and so on.  If a
        `labels' parameter is specified, its values are used to
        name the factor levels. If none is specified, the fac-
        tor level labels are constructed as `"(b1, b2]"',
        `"(b2, b3]"' etc. for `right=TRUE' and as `"[b1, b2)"',
        ... if `right=FALSE'.  In this case, `dig.lab' indi-
        cates how many digits should be used in formatting the
        numbers `b1', `b2', ....

   SSeeee AAllssoo::

        `split' for splitting a variable according to a group
        factor; `factor', `tabulate', `table'.

   EExxaammpplleess::

        cut(rep(1,5),4)#-- dummy
        tx0 <- c(9, 4, 6, 5, 3, 10, 5, 3, 5)
        x <- rep(0:8, tx0)
        tx <- table(x)
        all(tx == tx0)
        table( cut(x, b = 8))
        table( cut(x, br = 3*(-2:5)))
        table( cut(x, br = 3*(-2:5), right = F))

        ##--- some values OUTSIDE the breaks :
        table(cx  <- cut(x, br = 2*(0:4)))
        table(cxl <- cut(x, br = 2*(0:4), right = F))
        which(is.na(cx));  x[is.na(cx)]  #-- the first 9  values  0
        which(is.na(cxl)); x[is.na(cxl)] #-- the last  5  values  8

        ## Label construction:
        y <- rnorm(100)
        table(cut(y, breaks = pi/3*(-3:3)))
        table(cut(y, breaks = pi/3*(-3:3), dig.lab=4))

        table(cut(y, breaks =  1*(-3:3), dig.lab=4))# extra digits don't "harm" here
        table(cut(y, breaks =  1*(-3:3), right = F))#- the same, since no exact INT!

