Frequency distribution table for numerical data
A S3 set of methods to easily perform frequency distribution table (fdt) from
vector, data.frame and matrix objects.
## S3 generic
fdt(x, ...)
## S3 methods
## Default S3 method:
fdt(x,
    k,
    start,
    end,
    h,
    breaks=c('Sturges', 'Scott', 'FD'),
    right=FALSE, ...)
## S3 method for class 'data.frame'
fdt(x,
    k,
    by,
    breaks=c('Sturges', 'Scott', 'FD'),
    right=FALSE, ...)
## S3 method for class 'matrix'
fdt(x,
    k,
    breaks=c('Sturges', 'Scott', 'FD'),
    right=FALSE, ...)| x | A  | 
| k | Number of class intervals. | 
| start | Left endpoint of the first class interval. | 
| end | Right endpoint of the last class interval. | 
| h | Class interval width. | 
| by | Categorical variable used for grouping each numeric variable,
useful only on  | 
| breaks | Method used to determine the number of interval classes, c(“Sturges”, “Scott”, “FD”). | 
| right | Right endpoints open (default =  | 
| ... | Potencial further arguments (required by generic). | 
The simplest way to run fdt is done by supplying only the x
object, for example: nm <- fdt(x). In this case all necessary
default values (breaks and right) (“Sturges” and FALSE
respectively) will be used.
It can be provided also:
x and k (number of class intervals);
x, start (left endpoint of the first class interval) and end (right endpoint of the last class interval); or
x, start, end and h (class interval width).
These options make the fdt very easy and flexible.
The fdt object stores information to be used by methods summary,
print, plot, mean, median and mfv. The result of plot is a histogram.
The methods summary, print and plot provide a reasonable
set of parameters to format and plot the fdt object in a pretty
(and publishable) way.
For fdt the method fdt.default returns a list of class fdt.default with the slots:
| table | A  | 
| breaks | A  | 
| data | A vector of the data x provided. | 
The methods fdt.data.frame and fdt.matrix
return a list of class fdt.multiple.
This list has one slot for each numeric (fdt)
variable of the x provided. Each slot, corresponding to each numeric
variable, stores the same slots of the fdt.default described above.
José Cláudio Faria 
Enio G. Jelihovschi 
Ivan B. Allaman
library(fdth)
##========
## Vector
##========
x <- rnorm(n=1e3,
           mean=5,
           sd=1)
# x
(fdt <- fdt(x))
# x, alternative breaks
(fdt <- fdt(x,
            breaks='Scott'))
# x, k
(fdt <- fdt(x,
            k=10))
# x, star, end
range(x)
(fdt <- fdt(x,
            start=floor(min(x)),
            end=floor(max(x) + 1)))
# x, start, end, h
(fdt <- fdt(x,
            start=floor(min(x)),
            end=floor(max(x) + 1),
            h=1))
# Effect of right
x <- rep(1:3, 3); sort(x)
(fdt <- fdt(x,
            start=1,
            end=4,
            h=1))
(fdt <- fdt(x,
            start=0,
            end=3,
            h=1,
            right=TRUE))
##================================================
## Data.frame: multivariated with two categorical
##================================================
mdf <- data.frame(c1=sample(LETTERS[1:3], 1e2, TRUE),
                  c2=as.factor(sample(1:10, 1e2, TRUE)),
                  n1=c(NA, NA, rnorm(96, 10, 1), NA, NA),
                  n2=rnorm(100, 60, 4),
                  n3=rnorm(100, 50, 4),
                  stringsAsFactors=TRUE)
head(mdf)
(fdt <- fdt(mdf))
# By factor!
(fdt <- fdt(mdf,
            k=5,
            by='c1'))
# choose FD criteria               
(fdt <- fdt(mdf,
            breaks='FD',
            by='c1'))
(fdt <- fdt(mdf,
            k=5,
            by='c2'))
(fdt <- fdt(iris,
            k=10))
(fdt <- fdt(iris,
            k=5,
            by='Species'))
#=========================
# Matrices: multivariated
#=========================
(fdt <-fdt(state.x77))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.