Introducción General

Una sesión R representativa

Para brindar una visión clara del material esencial cubierto en este tema, los siguientes párrafos describen una sesión de análisis de R simple pero representativa, que proporciona algunas ilustraciones específicas de lo que R puede hacer.

La tarea general es una típica exploración preliminar de datos: se nos da un conjunto de datos desconocido y comenzamos intentando comprender qué contiene. En este caso particular, el conjunto de datos es un ejemplo de datos incorporado de R, uno de los muchos ejemplos incluidos en el lenguaje, pero las preguntas preliminares exploradas aquí son análogas a las que nos haríamos al caracterizar un conjunto de datos obtenido de Internet, de un almacén de datos de clientes en una aplicación comercial, o desde un sistema de recopilación de datos computarizado en un experimento científico o una aplicación de monitoreo de procesos industriales.

Las preguntas preliminares útiles incluyen:

  1. ¿Cuántos registros contiene este conjunto de datos?
  2. ¿Cuántos campos (es decir, variables) se incluyen en cada registro?
  3. ¿Qué tipo de variables son estas? (por ejemplo, números reales, enteros, variables categóricas como “ciudad” o “tipo”, ¿o algo más?)
  4. ¿Estas variables se cumplen siempre? (es decir, ¿los datos faltantes son un problema? Si es así, ¿cómo se representan los valores faltantes?)
  5. ¿Las variables incluidas en el conjunto de datos son las que esperábamos?
  6. ¿Son consistentes los valores de estas variables con lo que esperamos?
  7. ¿Las variables en el conjunto de datos parecen exhibir los tipos de relaciones que esperamos? (De hecho, ¿qué relaciones esperamos y por qué?)

El conjunto de datos específico que se considera en el siguiente ejemplo es el marco de datos (Data Frame) whiteside del paquete MASS, uno de los paquetes recomendados incluidos con casi todas las instalaciones de R. Al escribir “??whiteside” en el indicador “>”, se realiza una búsqueda aproximada a través de la documentación de todos los paquetes disponibles para su sesión de R, lo que abre una página con todas las coincidencias aproximadas del término. Al hacer clic en el enlace etiquetado MASS::whiteside nos lleva a una página de documentación con la siguiente descripción:

El Sr. Derek Whiteside de la Building Research Station del Reino Unido registró el consumo semanal de gas y la temperatura externa promedio en su propia casa en el sureste de Inglaterra durante dos temporadas de calefacción, una de 26 semanas antes y otra de 30 semanas después de que se instaló el aislamiento de la pared hueca. . El objeto del ejercicio fue evaluar el efecto del aislamiento en el consumo de gas.

Cargando el paquete MASS

Para analizar este conjunto de datos, primero es necesario que esté disponible cargando el paquete MASS con la función library() como se describe anteriormente:

library(MASS)

Mostrando los tres primeros registros con la función head()

Un marco de datos R es una matriz rectangular de N registros, cada uno representado como una fila, con M campos por registro, cada uno de los cuales representa un valor de una variable particular para ese registro. Esta estructura se puede ver aplicando la función head al marco de datos whiteside, que muestra sus primeros registros:

head(whiteside, n = 3)

Mostrando los tres últimos registros con la función tail()

tail(whiteside, n=3)

Más específicamente, la primera línea enumera los nombres de los campos, mientras que las siguientes tres líneas muestran los valores registrados en estos campos para los primeros tres registros del conjunto de datos.

Recuerde de la discusión anterior que el marco de datos de Whiteside caracteriza el consumo promedio semanal de gas de calefacción y la temperatura exterior promedio semanal durante dos inviernos sucesivos, el primero antes (Before) de que Whiteside instalara el aislamiento en su casa y el segundo después (After). Por lo tanto, cada registro en este marco de datos representa una observación semanal, enumerando si se realizó antes (Before) o después (After) de instalar el aislamiento (la variable Insul), la temperatura exterior promedio (Temp) y el consumo promedio de gas de calefacción (Gas).

Mostrando la estructura de el data.frame whiteside

La función str proporciona una vista más detallada de este marco de datos, que devuelve caracterizaciones estructurales de prácticamente cualquier objeto R. Aplicado al marco de datos whiteside, devuelve la siguiente información:

str(whiteside)
## 'data.frame':    56 obs. of  3 variables:
##  $ Insul: Factor w/ 2 levels "Before","After": 1 1 1 1 1 1 1 1 1 1 ...
##  $ Temp : num  -0.8 -0.7 0.4 2.5 2.9 3.2 3.6 3.9 4.2 4.3 ...
##  $ Gas  : num  7.2 6.9 6.4 6 5.8 5.8 5.6 4.7 5.8 5.2 ...

Aquí, la primera línea nos dice que whiteside es un marco de datos (data.frame), con 56 observaciones (filas o registros) y 3 variables. La segunda línea nos dice que la primera variable, Insul, es una variable factor con dos niveles: “Before” y “After”. (Los factores son un tipo de datos R importante que se utiliza para representar datos categóricos y se presenta brevemente en el siguiente párrafo). Las líneas tercera y cuarta nos dicen que Temp y Gas son variables numéricas.

Además, todas las líneas excepto la primera proporcionan resúmenes de los primeros (aquí, 10) valores observados para cada variable. Para las variables numéricas, estos valores son los mismos que se muestran con el comando principal presentado anteriormente, mientras que para los factores, str muestra un índice numérico que indica cuál de los posibles niveles de la variable está representado en cada uno de los primeros 10 registros.

Debido a que las variables factoriales son muy útiles y algo más complejas en su representación que las variables numéricas, vale la pena hacer una breve digresión aquí para hablar un poco más sobre ellas. Esencialmente, las variables de factor en R son vectores especiales que se utilizan para representar variables categóricas, codificándolas con dos componentes: un nivel, correspondiente al valor que vemos (por ejemplo, “Before” y “After” para el factor Insul en el marco de datos whiteside) y un índice que mapea cada elemento del vector en el nivel apropiado:

x <- whiteside$Insul
str(x)
##  Factor w/ 2 levels "Before","After": 1 1 1 1 1 1 1 1 1 1 ...
x[2]
## [1] Before
## Levels: Before After

Aquí, la caracterización de str nos dice cuántos niveles tiene el factor y cuáles son los nombres de esos niveles (es decir, dos niveles, llamados “Before” y “After”), pero los valores que muestra str son los índices en lugar de los niveles ( es decir, los primeros 10 registros enumeran el primer valor, que es “Before”). R también admite vectores de caracteres y estos podrían usarse para representar variables categóricas, pero una diferencia importante es que los niveles definidos para una variable de factor representan su solo valores posibles: el intento de introducir un nuevo valor en una variable de factor falla, generando un valor faltante en su lugar, con una advertencia. Por ejemplo, si intentáramos cambiar el segundo elemento de esta variable de factor de “Before” a “Unknown”, recibiríamos una advertencia sobre un nivel de factor no válido y que el intento de asignación resultó en que este elemento tuviera el valor faltante NA. Por el contrario, si convertimos x en este ejemplo en un vector de caracteres, la nueva asignación de valor que se intentó anteriormente ahora funciona:

x <- as.character(whiteside$Insul)

str(x)
##  chr [1:56] "Before" "Before" "Before" "Before" "Before" "Before" "Before" ...
x[2] <- "Unknown"

str(x)
##  chr [1:56] "Before" "Unknown" "Before" "Before" "Before" "Before" "Before" ...

Estadística descriptiva de un data.frame

Además de str y head, la función summary() también puede proporcionar mucha información útil sobre marcos de datos y otros objetos R. De hecho, summary() es un ejemplo de una función genérica en R, que puede hacer diferentes cosas dependiendo de los atributos del objeto al que la apliquemos. Cuando la función genérica sumary() se aplica a un marco de datos como whiteside, devuelve una caracterización relativamente simple de los valores que puede asumir cada variable:

summary(whiteside)
##     Insul         Temp             Gas       
##  Before:26   Min.   :-0.800   Min.   :1.300  
##  After :30   1st Qu.: 3.050   1st Qu.:3.500  
##              Median : 4.900   Median :3.950  
##              Mean   : 4.875   Mean   :4.071  
##              3rd Qu.: 7.125   3rd Qu.:4.625  
##              Max.   :10.200   Max.   :7.200

Este resultado se puede ver como una tabla con una columna para cada variable en el marco de datos whiteside (Insul, Temp y Gas) con un formato de columna que depende del tipo de variable que se caracteriza. Para el factor Insul de dos niveles, el resultado resumido da la cantidad de veces que ocurre cada nivel posible: 26 registros enumeran el valor “Before”, mientras que 30 enumeran el valor “After”. Para las variables numéricas, el resultado consta de dos componentes: uno es el valor medio, es decir, el promedio de la variable sobre todos los registros en el conjunto de datos, mientras que el otro es el resumen de cinco números de Tukey, que consta de estos cinco números:

  1. Min. Es el mínimo de la muestra, definido como el valor más pequeño de x en el conjunto de datos;
  2. 1st Qu. Es el cuartil inferior, definido como el valor xL para el cual el 25% de los datos satisface \(x ≤ xL\) y el otro 75% de los datos satisface x > xL;
  3. Median Es la mediana de la muestra, definida como el “valor medio” en el conjunto de datos, el valor que el 50% de los valores de datos no exceden y el 50% exceden;
  4. 3rd Qu. Es el cuartil superior, definido como el valor xU para el cual el 75% de los datos satisface \(x ≤ xU\) y el otro 25% de los datos satisface x > xU;
  5. Max Es el máximo de la muestra, definido como el mayor valor de x en el conjunto de datos
  6. Mean Es el promedio aritmético el cual es igual a:

\[ \bar x = \frac{1}{n} \sum_{i=1}^n x_i \] ## Estadística descriptiva de una variable del data.frame

summary(whiteside$Temp)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  -0.800   3.050   4.900   4.875   7.125  10.200

Descripción de la variable Temp del data.frame whiteside

De las 56 viviendas la temperatura vario desde un mínimo de -0.800 oF, hasta un máximo de 10.2 oF, con un valor promedio de 4.875 oF

Explicación de los cuartiles:

De las 56 viviendas el 25% de las viviendas mostraron una temperatura <= a 3.050 oF De las 56 viviendas el 50% de las viviendas mostraron una temperatura <= a 4.9 oF De las 56 viviendas el 75% de las viviendas mostraron una temperatura <= a 7.125 oF

Mostrando las estadísticas individuales del reporte de la función summary

# Mínimo
min(whiteside$Temp)
## [1] -0.8
# Máximo
max(whiteside$Temp)
## [1] 10.2
# Media aritmética
mean(whiteside$Temp)
## [1] 4.875
# Mediana
median(whiteside$Temp)
## [1] 4.9
# Cuartiles
# Primer cuartil: q1
quantile(whiteside$Temp,0.25)
##  25% 
## 3.05
# Segundo cuartil: q2
quantile(whiteside$Temp,0.5)
## 50% 
## 4.9
# Tercer cuartil: q3
quantile(whiteside$Temp,0.75)
##   75% 
## 7.125

ESTADISTICAS DESCRIPTIVAS CON DATOS PROPIOS

Cargar los datos en la sesión actual (Archivo de Excel), data frame Agregados

library(readxl)
agregados <- read_excel("DATOS_2022_SEM_2.xlsx", sheet = "Agregados")
agregados

Mostrar las primeras 3 lineas del df

head(agregados, n=3)

Mostrar las últimas 3 lineas del df

tail(agregados)

Mostrar la estructura del df agregados

str(agregados)
## tibble [60 × 18] (S3: tbl_df/tbl/data.frame)
##  $ fgeo   : chr [1:60] "SC" "SC" "SC" "SC" ...
##  $ tmax   : num [1:60] 5 3.81 3.81 3.81 3.81 3.81 3.81 3.81 3.81 3.81 ...
##  $ tmaxnom: num [1:60] 3.81 3.81 3.81 2.54 2.54 3.81 3.81 3.81 3.81 3.81 ...
##  $ pea    : num [1:60] 1.93 2.46 2.57 2.5 2.5 2.51 2.5 2.69 2.61 2.57 ...
##  $ psss   : num [1:60] 1.97 2.55 2.61 2.56 2.56 2.57 2.55 2.75 2.63 2.59 ...
##  $ pen    : num [1:60] 2.02 2.71 2.69 2.65 2.65 2.65 2.64 2.86 2.68 2.63 ...
##  $ abs    : num [1:60] 2.15 3.7 1.79 2.25 2.33 2.12 2.26 2.24 1.01 0.94 ...
##  $ iapla  : num [1:60] 25.3 13.3 33.4 20.4 20.4 ...
##  $ ialar  : num [1:60] 24.8 22.4 28.5 39.9 34.9 ...
##  $ pus    : num [1:60] 1276 1385 1399 1347 1318 ...
##  $ puc    : num [1:60] 1490 1585 1599 1528 1542 ...
##  $ vas    : num [1:60] 33.9 43.7 45.5 46.1 47.3 ...
##  $ vac    : num [1:60] 22.8 35.6 37.8 38.9 38.3 ...
##  $ trit   : num [1:60] 26.1 25.6 23 27.5 25.7 ...
##  $ desg   : num [1:60] 28.2 28.8 28 29.2 28 ...
##  $ rcompa : num [1:60] 233 254 340 340 417 ...
##  $ denscon: num [1:60] 2296 2385 2213 2324 2368 ...
##  $ rcompc : num [1:60] 246 250 230 251 246 ...

Resumen de las cinco estadísticas de Tukey con summary()

summary(agregados)
##      fgeo                tmax          tmaxnom           pea       
##  Length:60          Min.   :1.500   Min.   :2.540   Min.   :1.910  
##  Class :character   1st Qu.:3.232   1st Qu.:2.540   1st Qu.:2.493  
##  Mode  :character   Median :3.810   Median :3.810   Median :2.515  
##                     Mean   :3.273   Mean   :3.408   Mean   :2.491  
##                     3rd Qu.:3.810   3rd Qu.:3.810   3rd Qu.:2.540  
##                     Max.   :5.080   Max.   :3.810   Max.   :2.690  
##       psss            pen             abs            iapla      
##  Min.   :1.970   Min.   :2.020   Min.   :0.940   Min.   :13.32  
##  1st Qu.:2.550   1st Qu.:2.625   1st Qu.:1.975   1st Qu.:20.22  
##  Median :2.570   Median :2.650   Median :2.245   Median :22.98  
##  Mean   :2.545   Mean   :2.631   Mean   :2.213   Mean   :23.52  
##  3rd Qu.:2.590   3rd Qu.:2.690   3rd Qu.:2.565   3rd Qu.:25.30  
##  Max.   :2.750   Max.   :2.860   Max.   :3.700   Max.   :39.91  
##      ialar            pus            puc            vas             vac       
##  Min.   :18.37   Min.   :1276   Min.   :1452   Min.   :22.81   Min.   :22.81  
##  1st Qu.:22.39   1st Qu.:1316   1st Qu.:1523   1st Qu.:41.00   1st Qu.:37.32  
##  Median :25.39   Median :1344   Median :1545   Median :46.04   Median :38.51  
##  Mean   :27.30   Mean   :1343   Mean   :1545   Mean   :43.99   Mean   :38.02  
##  3rd Qu.:32.57   3rd Qu.:1356   3rd Qu.:1580   3rd Qu.:47.10   3rd Qu.:39.33  
##  Max.   :42.54   Max.   :1436   Max.   :1617   Max.   :49.70   Max.   :42.59  
##       trit            desg           rcompa         denscon         rcompc     
##  Min.   :22.98   Min.   :26.15   Min.   :159.0   Min.   :2173   Min.   :179.0  
##  1st Qu.:25.71   1st Qu.:27.47   1st Qu.:260.1   1st Qu.:2308   1st Qu.:262.1  
##  Median :27.19   Median :28.11   Median :319.1   Median :2334   Median :270.5  
##  Mean   :26.73   Mean   :28.19   Mean   :334.1   Mean   :2318   Mean   :266.3  
##  3rd Qu.:28.26   3rd Qu.:28.61   3rd Qu.:397.0   3rd Qu.:2355   3rd Qu.:277.2  
##  Max.   :29.76   Max.   :31.75   Max.   :669.5   Max.   :2385   Max.   :282.2

Mostrar los nombres de las variables con la función names()

names(agregados)
##  [1] "fgeo"    "tmax"    "tmaxnom" "pea"     "psss"    "pen"     "abs"    
##  [8] "iapla"   "ialar"   "pus"     "puc"     "vas"     "vac"     "trit"   
## [15] "desg"    "rcompa"  "denscon" "rcompc"

Resumen de las cinco estadísticas de Tukey para rcompa con summary()

summary(agregados$rcompa)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   159.0   260.1   319.1   334.1   397.0   669.5

DESCRIPCIÓN DE LAS ESTADÍSTICAS DE LA RESISTENCIA A LA COMPRESIÓN DEL AGREGADO EN kg/cm2

De las 60 muestras en las canteras de toluviejo, el agregado petreo mostró una resistencia a la compresión de 334.1 kg/cm2 en promedio. Variando desde un mínimo de 159.0 kg/cm2 hasta un máximo de 669.5 kg/cm2.

El 25% de las 60 muestras mostraron una RX menor o igual a 260.1 kg/cm2 El 50% de las 60 muestras mostraron una RX menor o igual a 319.1 kg/cm2 El 75% de las 60 muestras mostraron una RX menor o igual a 397.0 kg/cm2

El error típico de la media https://es.wikipedia.org/wiki/Error_est%C3%A1ndar, se define como:

\[ etm = s / \sqrt{n} \] Donde s es la desviación estándar que es la raíz cuadrada de la varianza, la cual es:

\[ s^2 = \frac{1}{n-1} \sum_{i=1}^n (x-\bar x)² \]

Las funciones en R para la varianza y la desviación estándar son var() y sd()

# El Error típico de la media
# Este error se utiliza para expresar correctamente el promedio aritmético
# Promedio aritmético
m = mean(agregados$rcompc)
etm = sd(agregados$rcompc) / sqrt(length(agregados$rcompc))
# Imprimo utilizando la función cat() que significa concatena e imprime
cat("El promedio es ", m, "mas o menos ", etm, "kg/cm2")
## El promedio es  266.2547 mas o menos  2.156254 kg/cm2

Creando funciones en R con la función function()

Ejercicio: Crear una función que DESCRIBA las principales estadísticas descriptivas, mostrando los mensajes con sus interpretaciones.

Verificamos en la función describir que el parámetro x debe ser numérico con la función:

stopifnot {base} R Documentation Ensure the Truth of R Expressions

Description If any of the expressions (in … or exprs) are not all TRUE, stop is called, producing an error message indicating the first expression which was not (all) true.

El coeficiente de variación se define: \[ cv = s / \bar{x} * 100 \] Interpretación del coeficiente de variación

CV Dispersión
<10 Concentrada
10-30 Homogenea
>30 Dispersa
# Crear una función de nombre describir que calcule las estadísticas descriptivas de un vector numérico
describir <- function(x,unidad){
  #Comprueba que el parámetro x sea numérico con la función stopifnot()
  stopifnot(is.numeric(x))

  # Obtengo el número total de datos
  n = length(x)
  #Calculo mínimos y maximos
  minimo=min(x)
  maximo=max(x)
  # Obtengo el promedio aritmético
  m = mean(x,na.rm = T)
  # Obtengo la desviación estándar
  s = sd(x, na.rm = T)
  # Obtengo el Error Típico de la Media
  etm = s / sqrt(n)
  
  # Imprimo resultados con la función cat()
  cat("De los ", n, "datos, el valor promedio fue de ", m, unidad, ", mas o menos ",etm, unidad)
  cat("\nVariando desde un mínimo de ", minimo, unidad, " hasta un máximo de ",maximo, unidad)
  
  # Obtengo los cuartiles (q1, q2, y q3) con la función quantile()
  q1 = quantile(x, 0.25)
  q2 = quantile(x, 0.50)
  q3 = quantile(x, 0.75)
  
  # Interpretar los cuartiles
  cat("\n\nDESCRIPCIÓN DE LOS CUARTILES:")
  cat("\nEl 25% de los ", n, " datos está por debajo de ", q1, unidad)
  cat("\nEl 50% de los ", n, " datos está por debajo de ", q2, unidad)
  cat("\nEl 75% de los ", n, " datos está por debajo de ", q3, unidad)
  
  # Calcula el coeficiente de Variación, se define como cv=s/
  cv = s/m*100
  # Interpretar el coeficiente de Variación
  if (cv<10) {
    cat("\n\nCV=",cv,", Dispersión Concentrada")
  }
  
  if (cv>=10 & cv<=30) {
    cat("\nCV=",cv,", Dispersión Homogenea")
  }
  
  if (cv>30) {
    cat("\nCV=",cv,", Dispersión Dispersa: REVISE EL DATO, POSIBLES OUTLIER")
  }
  
  boxplot(x)

}
describir(agregados$rcompc,"kg/cm2")
## De los  60 datos, el valor promedio fue de  266.2547 kg/cm2 , mas o menos  2.156254 kg/cm2
## Variando desde un mínimo de  178.99 kg/cm2  hasta un máximo de  282.16 kg/cm2
## 
## DESCRIPCIÓN DE LOS CUARTILES:
## El 25% de los  60  datos está por debajo de  262.0975 kg/cm2
## El 50% de los  60  datos está por debajo de  270.535 kg/cm2
## El 75% de los  60  datos está por debajo de  277.215 kg/cm2
## 
## CV= 6.273044 , Dispersión Concentrada

Cargar los datos en la sesión actual (Archivo de Excel), data frame CONCRETO

library(readxl)
concreto <- read_excel("DATOS_2022_SEM_2.xlsx", 
    sheet = "Concreto")
## New names:
## • `` -> `...1`

Miro todos los nombres de las variables con la función names()

names(concreto)
##  [1] "...1"          "cemento"       "ceniza1"       "cenizav"      
##  [5] "agua"          "plastificador" "agregadog"     "agregadof"    
##  [9] "edad"          "resistencia"

Muestro la estructura del data frame

str(concreto)
## tibble [1,030 × 10] (S3: tbl_df/tbl/data.frame)
##  $ ...1         : num [1:1030] 0 1 2 3 4 5 6 7 8 9 ...
##  $ cemento      : num [1:1030] 540 540 332 332 199 ...
##  $ ceniza1      : num [1:1030] 0 0 142 142 132 ...
##  $ cenizav      : num [1:1030] 0 0 0 0 0 0 0 0 0 0 ...
##  $ agua         : num [1:1030] 162 162 228 228 192 228 228 228 228 228 ...
##  $ plastificador: num [1:1030] 2.5 2.5 0 0 0 0 0 0 0 0 ...
##  $ agregadog    : num [1:1030] 1040 1055 932 932 978 ...
##  $ agregadof    : num [1:1030] 676 676 594 594 826 ...
##  $ edad         : num [1:1030] 28 28 270 365 360 90 365 28 28 28 ...
##  $ resistencia  : num [1:1030] 80 61.9 40.3 41 44.3 ...

Hago un resumen general del data frame

summary(concreto)
##       ...1           cemento         ceniza1         cenizav      
##  Min.   :   0.0   Min.   :102.0   Min.   :  0.0   Min.   :  0.00  
##  1st Qu.: 257.2   1st Qu.:192.4   1st Qu.:  0.0   1st Qu.:  0.00  
##  Median : 514.5   Median :272.9   Median : 22.0   Median :  0.00  
##  Mean   : 514.5   Mean   :281.2   Mean   : 73.9   Mean   : 54.19  
##  3rd Qu.: 771.8   3rd Qu.:350.0   3rd Qu.:142.9   3rd Qu.:118.30  
##  Max.   :1029.0   Max.   :540.0   Max.   :359.4   Max.   :200.10  
##       agua       plastificador      agregadog        agregadof    
##  Min.   :121.8   Min.   : 0.000   Min.   : 801.0   Min.   :594.0  
##  1st Qu.:164.9   1st Qu.: 0.000   1st Qu.: 932.0   1st Qu.:731.0  
##  Median :185.0   Median : 6.400   Median : 968.0   Median :779.5  
##  Mean   :181.6   Mean   : 6.205   Mean   : 972.9   Mean   :773.6  
##  3rd Qu.:192.0   3rd Qu.:10.200   3rd Qu.:1029.4   3rd Qu.:824.0  
##  Max.   :247.0   Max.   :32.200   Max.   :1145.0   Max.   :992.6  
##       edad         resistencia   
##  Min.   :  1.00   Min.   : 2.33  
##  1st Qu.:  7.00   1st Qu.:23.71  
##  Median : 28.00   Median :34.45  
##  Mean   : 45.66   Mean   :35.82  
##  3rd Qu.: 56.00   3rd Qu.:46.13  
##  Max.   :365.00   Max.   :82.60

Describir la variable resistencia

describir(concreto$resistencia,"kg/cm2")
## De los  1030 datos, el valor promedio fue de  35.81796 kg/cm2 , mas o menos  0.5205317 kg/cm2
## Variando desde un mínimo de  2.33 kg/cm2  hasta un máximo de  82.6 kg/cm2
## 
## DESCRIPCIÓN DE LOS CUARTILES:
## El 25% de los  1030  datos está por debajo de  23.71 kg/cm2
## El 50% de los  1030  datos está por debajo de  34.445 kg/cm2
## El 75% de los  1030  datos está por debajo de  46.135 kg/cm2
## CV= 46.64068 , Dispersión Dispersa: REVISE EL DATO, POSIBLES OUTLIER

QUEDAMOS AQUI PARA CONCLUIR LA PROXIMA CLASE EL USO DE subset() PARA EXTRAER SUBCONJUNTOS DE DATOS DE DF Y CONCLUIR LA FUNCIÓN DESCRIBIR()

Muestro los nombres de las variables del data frame agregados

names(agregados)
##  [1] "fgeo"    "tmax"    "tmaxnom" "pea"     "psss"    "pen"     "abs"    
##  [8] "iapla"   "ialar"   "pus"     "puc"     "vas"     "vac"     "trit"   
## [15] "desg"    "rcompa"  "denscon" "rcompc"

Muestro la variable factor fgeo

agregados$fgeo
##  [1] "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC"
## [16] "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC" "SC"
## [31] "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV"
## [46] "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV" "TV"

Extraer los datos de la cantera de Tolu Viejo y de San Cayetano utilizando la función subset()

tv = subset(agregados, agregados$fgeo=="TV")
sc = subset(agregados,agregados$fgeo=="SC")

Describo el rcompc de sc y de tv

describir(sc$rcompc,"kg/cm2")
## De los  30 datos, el valor promedio fue de  256.3167 kg/cm2 , mas o menos  3.403708 kg/cm2
## Variando desde un mínimo de  178.99 kg/cm2  hasta un máximo de  271.49 kg/cm2
## 
## DESCRIPCIÓN DE LOS CUARTILES:
## El 25% de los  30  datos está por debajo de  248.33 kg/cm2
## El 50% de los  30  datos está por debajo de  262.015 kg/cm2
## El 75% de los  30  datos está por debajo de  269.94 kg/cm2
## 
## CV= 7.273376 , Dispersión Concentrada

Describo rcompc de TV

describir(tv$rcompc,"kg/cm2")
## De los  30 datos, el valor promedio fue de  276.1927 kg/cm2 , mas o menos  0.7223938 kg/cm2
## Variando desde un mínimo de  268.71 kg/cm2  hasta un máximo de  282.16 kg/cm2
## 
## DESCRIPCIÓN DE LOS CUARTILES:
## El 25% de los  30  datos está por debajo de  272.765 kg/cm2
## El 50% de los  30  datos está por debajo de  277.54 kg/cm2
## El 75% de los  30  datos está por debajo de  279.355 kg/cm2
## 
## CV= 1.432592 , Dispersión Concentrada