# Ayuda en R
?mean
x <- c(0:10, 50)
x
## [1] 0 1 2 3 4 5 6 7 8 9 10 50
round(mean(x),1)
## [1] 8.8
?sd
round(sd(1:10) ^ 2, 2)
## [1] 9.17
Vector numérico
brix <- c(10.2, 11.5, 10.8, 12.1, 11.7)
# Imprimir brix
brix
## [1] 10.2 11.5 10.8 12.1 11.7
# Clase de vector de brix
class(brix) #como es numérico puedo hacer operaciones matemáticas
## [1] "numeric"
# brix promedio
mean(brix)
## [1] 11.26
# mediana
median(brix)
## [1] 11.5
# máximo
max(brix)
## [1] 12.1
# mínimo
min(brix)
## [1] 10.2
humedad <- c(78.5, 80.1, 79.4, NA, 81)
class(humedad)
## [1] "numeric"
humedad_caracter <- c(78.5, 80.1, 79.4, NA, 81, "90")
class(humedad_caracter)
## [1] "character"
peso_fruta <- c(1.2, 1.5, 1.3, 1.4, 1.6) #kg
fraccion_util <- c(0.68, 0.72, 0.70, 0.69, 0.71)
pulpa_util <- peso_fruta * fraccion_util
pulpa_util
## [1] 0.816 1.080 0.910 0.966 1.136
mean(pulpa_util)
## [1] 0.9816
fruta <- c("Mango", "Guayaba", "Guayaba", "Mango")
fruta
## [1] "Mango" "Guayaba" "Guayaba" "Mango"
class(fruta)
## [1] "character"
Convertir a factor el caracter anterior
#Convertir a fctor
fruta_f <- factor(fruta)
class(fruta_f)
## [1] "factor"
levels(fruta_f)
## [1] "Guayaba" "Mango"
table(fruta_f)
## fruta_f
## Guayaba Mango
## 2 2
# Temperaturas de secado
tratamiento <- c("60C", "70C", "80C", "60C", "90C", "105C")
tratamiento_f <- factor(tratamiento)
#Promedio
mean(tratamiento_f) #Arroja error porque es un factor
## Warning in mean.default(tratamiento_f): argument is not numeric or logical:
## returning NA
## [1] NA
# Niveles de tratamiento
levels(tratamiento_f)
## [1] "105C" "60C" "70C" "80C" "90C"
#Tabla de frecuencias
table(tratamiento_f)
## tratamiento_f
## 105C 60C 70C 80C 90C
## 1 2 1 1 1
pH <- c(3.8, 4.1, 3.6, 4.3, 3.9)
pH[1] #Primer valor
## [1] 3.8
pH[4] #Cuarto valor
## [1] 4.3
pH[-1] #Todos excepto primer valor
## [1] 4.1 3.6 4.3 3.9
pH[pH > 3.8] #Valores mayores a 3.8
## [1] 4.1 4.3 3.9
pH[pH != 3.6] #Valores distintos a 3.6
## [1] 3.8 4.1 4.3 3.9
temperatura <- seq(from = 40, to = 100, by = 10)
#Ploteo de temperatura al cuadrado
plot(temperatura^2,
ylab = "Temperatura °C",
xlab = "Muestras",
main = "Temperatura de muestras de harinas")
}
datos <- data.frame(
muestra = 1:8,
producto = c("Mango", "Mango", "Guayaba", "Guayaba",
"Mango", "Guayaba", "Mango", "Guayaba"),
tratamiento = c("Control", "Secado", "Control", "Secado",
"Control", "Secado", "Secado", "Control"),
brix = c(12.1, 13.4, 10.5, 11.8, 12.7, 11.1, 13.0, 10.8),
ph = c(4.2, 4.0, 3.7, 3.8, 4.1, 3.9, 4.0, 3.8),
humedad = c(82.3, 18.5, 79.8, 20.1, 81.0, 19.3, 17.8, 80.4)
)
datos
## muestra producto tratamiento brix ph humedad
## 1 1 Mango Control 12.1 4.2 82.3
## 2 2 Mango Secado 13.4 4.0 18.5
## 3 3 Guayaba Control 10.5 3.7 79.8
## 4 4 Guayaba Secado 11.8 3.8 20.1
## 5 5 Mango Control 12.7 4.1 81.0
## 6 6 Guayaba Secado 11.1 3.9 19.3
## 7 7 Mango Secado 13.0 4.0 17.8
## 8 8 Guayaba Control 10.8 3.8 80.4
class(datos)
## [1] "data.frame"
# Estructura del data frame
str(datos)
## 'data.frame': 8 obs. of 6 variables:
## $ muestra : int 1 2 3 4 5 6 7 8
## $ producto : chr "Mango" "Mango" "Guayaba" "Guayaba" ...
## $ tratamiento: chr "Control" "Secado" "Control" "Secado" ...
## $ brix : num 12.1 13.4 10.5 11.8 12.7 11.1 13 10.8
## $ ph : num 4.2 4 3.7 3.8 4.1 3.9 4 3.8
## $ humedad : num 82.3 18.5 79.8 20.1 81 19.3 17.8 80.4
# Ver nombres de variables
names(datos)
## [1] "muestra" "producto" "tratamiento" "brix" "ph"
## [6] "humedad"
#Resumen general
summary(datos)
## muestra producto tratamiento brix
## Min. :1.00 Length:8 Length:8 Min. :10.50
## 1st Qu.:2.75 Class :character Class :character 1st Qu.:11.03
## Median :4.50 Mode :character Mode :character Median :11.95
## Mean :4.50 Mean :11.93
## 3rd Qu.:6.25 3rd Qu.:12.78
## Max. :8.00 Max. :13.40
## ph humedad
## Min. :3.700 Min. :17.80
## 1st Qu.:3.800 1st Qu.:19.10
## Median :3.950 Median :49.95
## Mean :3.938 Mean :49.90
## 3rd Qu.:4.025 3rd Qu.:80.55
## Max. :4.200 Max. :82.30
#Guardar data set datos
write.csv(datos, "data/datos_frutas.csv", row.names = F)
class(datos)
## [1] "data.frame"
#Acceder a una columna
datos$brix
## [1] 12.1 13.4 10.5 11.8 12.7 11.1 13.0 10.8
datos$ph
## [1] 4.2 4.0 3.7 3.8 4.1 3.9 4.0 3.8
names(datos)
## [1] "muestra" "producto" "tratamiento" "brix" "ph"
## [6] "humedad"
#Promedio de °Brix
mean(datos$brix)
## [1] 11.925
#Promedio de humedad
mean(datos$humedad)
## [1] 49.9
#Tabla de frecuencias para productos
table(datos$producto)
##
## Guayaba Mango
## 4 4
#Tabla de frecuencias para tratamiento
table(datos$tratamiento)
##
## Control Secado
## 4 4
# Histograma de humedad
hist(datos$humedad,
main = "Distribución de humedad",
xlab = "Humedad (%)",
col = "lightblue")
# Boxplott de °Brix por producto
boxplot(brix ~ producto, data = datos,
main = "°Brix por tipo de producto",
xlab = "Fruta",
ylab = "°Brix",
col = "#27F538")
# Boxplot de humedad por tratamiento
boxplot(humedad ~ tratamiento, data = datos,
main = "Humedad según tratamiento",
xlab = "Tratamiento",
ylab = "Humedad (%)",
col = "lightgray")