# -----------------------------------------------------------------------------
# TABLA DE FRECUENCIAS con  library (agricolae)
#-------------------------------------------------------------------------------

# creando la tabla de frecuencias completa usando agricolae
# función :table.freq()
library(dplyr); library(agricolae)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# la variable x es un vector

x<- c(  4.30,  6.50,    7.20,   7.70,    5.00,  7.00,    8.70,  8.80,   2.40,   10.30,
        8.00,  0.90,    7.80,   8.00,   12.30,  3.90,    0.90,  4.90,   8.00,    3.80,
        3.70, 12.60,    2.00,   4.60,    3.80,  8.40,    4.00,  3.00,   1.40,    6.60,
        2.60, 10.30,    4.20,   2.20,    2.00,  1.00,   10.00,  3.30,   1.90,    1.60,
        15.70,  6.20,   4.80,   3.20,    4.40,  3.90,    1.10,  4.40,   4.80,    4.30  )
# para usar la librería agricolae se debe tener la información como un data frame

df<- as.data.frame(x)

# df es el data frame que contiene la variable x
# lista de resulatdos en el objeto hf
# dataframe= df,  variable = x
# de listas de df se obtine informacion sobre los puntos de corte (breaks)

hf<-with(df,graph.freq(x,plot=FALSE,breaks= seq(0,16,2), right = F))  
hf
## $breaks
## [1]  0  2  4  6  8 10 12 14 16
## 
## $counts
## [1]  7 13 11  7  6  3  2  1
## 
## $mids
## [1]  1  3  5  7  9 11 13 15
## 
## $relative
## [1] 0.14 0.26 0.22 0.14 0.12 0.06 0.04 0.02
## 
## $density
## [1] 0.07 0.13 0.11 0.07 0.06 0.03 0.02 0.01
## 
## attr(,"class")
## [1] "graph.freq" "histogram"
# hacemos la tabla de frecuencias  en el objeto tabla

Tabla <- table.freq(hf) ;Tabla
##   Lower Upper Main Frequency Percentage CF CPF
## 1     0     2    1         7         14  7  14
## 2     2     4    3        13         26 20  40
## 3     4     6    5        11         22 31  62
## 4     6     8    7         7         14 38  76
## 5     8    10    9         6         12 44  88
## 6    10    12   11         3          6 47  94
## 7    12    14   13         2          4 49  98
## 8    14    16   15         1          2 50 100
# renombramos las etiquetas de la tabla para una mejor comprensión

tf<- Tabla %>% 
  rename(Li= Lower  , Ls = Upper, mi= Main , fi= Frequency,
         hi= Percentage, Fi = CF, Hi= CPF) 

tf              # dataframe con etiquetas editadas
##   Li Ls mi fi hi Fi  Hi
## 1  0  2  1  7 14  7  14
## 2  2  4  3 13 26 20  40
## 3  4  6  5 11 22 31  62
## 4  6  8  7  7 14 38  76
## 5  8 10  9  6 12 44  88
## 6 10 12 11  3  6 47  94
## 7 12 14 13  2  4 49  98
## 8 14 16 15  1  2 50 100
# visualizando la tabla correctamente

print(tf,row.names=F)
##  Li Ls mi fi hi Fi  Hi
##   0  2  1  7 14  7  14
##   2  4  3 13 26 20  40
##   4  6  5 11 22 31  62
##   6  8  7  7 14 38  76
##   8 10  9  6 12 44  88
##  10 12 11  3  6 47  94
##  12 14 13  2  4 49  98
##  14 16 15  1  2 50 100