Tutorial sobre tablas de frecuencia, de contingencia o de recuento de datos, en R.

Puedes seguir el tutorial por vídeo en https://youtu.be/EjEkAxlwLP0

Establecemos el directorio de trabajo.

setwd("C:/Users/Raul Ortiz/Documents/Expression/Expression Encoder/Output/33 Tabla de frecuencias I")

Creamos un par de DF para usarlos en el ejemplo

Datos = data.frame (
    Cultivo = c("Trigo", "Melocoton", "Sandia", "Tomate", "Cebada","Ciruelo","Melon", 
                "Almendro", "Calabacin", "Maiz"),
    Grupo = c("Cereal", "Frutal", "Horticola", "Horticola", "Cereal", "Frutal", "Horticola", 
              "Frutal", "Horticola", "Cereal"),
    Agua = c("Secano", "Regadio", "Regadio", "Regadio", "Secano", "Regadio", "Regadio", 
             "Secano", "Regadio", "Regadio"),
    Terreno = c("Abierto", "Abierto", "Invernadero", "Invernadero", "Abierto", "Abierto", 
                "Abierto", "Abierto", "Invernadero", "Abierto"))
Datos
##      Cultivo     Grupo    Agua     Terreno
## 1      Trigo    Cereal  Secano     Abierto
## 2  Melocoton    Frutal Regadio     Abierto
## 3     Sandia Horticola Regadio Invernadero
## 4     Tomate Horticola Regadio Invernadero
## 5     Cebada    Cereal  Secano     Abierto
## 6    Ciruelo    Frutal Regadio     Abierto
## 7      Melon Horticola Regadio     Abierto
## 8   Almendro    Frutal  Secano     Abierto
## 9  Calabacin Horticola Regadio Invernadero
## 10      Maiz    Cereal Regadio     Abierto

Para saber cuantos cultivos de cada grupo hay, contamos las veces que se repite cada uno de los niveles de la variable Grupo, es decir, preparamos una Tabla de frecuencias.

levels (Datos$Grupo)
## [1] "Cereal"    "Frutal"    "Horticola"
table (Datos$Grupo) # Tabla de frecuencias
## 
##    Cereal    Frutal Horticola 
##         3         3         4
table (Datos$Grupo)/length(Datos$Grupo) # Tabla de proporciones
## 
##    Cereal    Frutal Horticola 
##       0.3       0.3       0.4
table (Datos$Grupo)/10 
## 
##    Cereal    Frutal Horticola 
##       0.3       0.3       0.4
# Vemos que es el número de observaciones mirando el entorno. 
# Pero si cambia este número tenemos que cambiar el scrip, mientras que utilizando el comando length(), no es necesario.

Para averiguar los grupos que se riegan y los que no, preparamos una Tabla de contingencias.

table (Datos$Grupo, Datos$Agua)
##            
##             Regadio Secano
##   Cereal          1      2
##   Frutal          2      1
##   Horticola       4      0
Tabla = table (Datos$Grupo, Datos$Agua)

Si queremos averiguar las frecuencias relativas, en vez de las absolutas.

prop.table (Tabla) # Proporción con respecto al total de los datos de la tabla
##            
##             Regadio Secano
##   Cereal        0.1    0.2
##   Frutal        0.2    0.1
##   Horticola     0.4    0.0
prop.table (Tabla, 1) # Proporción con respecto al total de los datos de cada fila
##            
##               Regadio    Secano
##   Cereal    0.3333333 0.6666667
##   Frutal    0.6666667 0.3333333
##   Horticola 1.0000000 0.0000000
prop.table (Tabla, 2) # Proporción con respecto al total de los datos de cada columna
##            
##               Regadio    Secano
##   Cereal    0.1428571 0.6666667
##   Frutal    0.2857143 0.3333333
##   Horticola 0.5714286 0.0000000

Si queremos averiguar el total de datos por fila o columna.

Tabla
##            
##             Regadio Secano
##   Cereal          1      2
##   Frutal          2      1
##   Horticola       4      0
margin.table(Tabla, 1) # Por fila
## 
##    Cereal    Frutal Horticola 
##         3         3         4
margin.table(Tabla, 2) # Por columna
## 
## Regadio  Secano 
##       7       3