Elabore una funcion propia llamada ‘afrecuencias’, que elabore una tabla de frecuencia completa (Frecuencia absoluta, Frecuencia absoluta acumulada, Frecuencia Relativa y Frecuencia Relativa acumulada), de acuerdo a las siguientes indicaciones:

library(knitr)
afrecuencias<-function(X,tipo){
  if (tipo== "simple"| tipo!="agrupada") {
    F.abs<-table(X)
    F.abs.ac <-cumsum(F.abs)
    F.rel <-prop.table(F.abs)
    F.re.ac <-cumsum(F.rel)
    da<-data.frame(F.abs,F.abs.ac,F.rel,F.re.ac)
    q<-da[,-1]
    tabla <-q[,-3]
    kable(tabla)
  }else{
    if(tipo=="agrupada" | tipo!="simple") {
      n <- length(X)
      k <- (1+(3.32*log(n,10)))
      A <- diff(range(X)) / round(k,0)
      x_cut <- cut(X, breaks = k, right=T)
      intervals <- levels(x_cut)
      Fr.abs <- as.vector(table(x_cut)) 
      Fr.rel <- round(Fr.abs/length(X),3) 
      F.abs.ac <- cumsum(Fr.abs) 
      F.re.ac <- cumsum(Fr.rel)
      tabla <- data.frame(intervals, Fr.abs, F.abs.ac, Fr.rel, F.re.ac)
      kable(tabla)
    } else{
      warning("ingrese solo la palbara simple o agupada")
    }  
  }
}

Ingresamos nuestras variables chickts

afrecuencias(X=chickwts$feed,tipo="simple")
Freq F.abs.ac Freq.1 F.re.ac
casein 12 12 0.1690141 0.1690141
horsebean 10 22 0.1408451 0.3098592
linseed 12 34 0.1690141 0.4788732
meatmeal 11 45 0.1549296 0.6338028
soybean 14 59 0.1971831 0.8309859
sunflower 12 71 0.1690141 1.0000000
afrecuencias(X=chickwts$weight,tipo="agrupada")
intervals Fr.abs F.abs.ac Fr.rel F.re.ac
(108,153] 8 8 0.113 0.113
(153,198] 8 16 0.113 0.226
(198,243] 13 29 0.183 0.409
(243,288] 14 43 0.197 0.606
(288,333] 14 57 0.197 0.803
(333,378] 8 65 0.113 0.916
(378,423] 6 71 0.085 1.001