Ejemplos con diferentes operadores matemáticos.
elem1 = 43
elem2 = 35
elem1 + elem2
## [1] 78
elem1 - elem2
## [1] 8
elem1 * elem2
## [1] 1505
elem1 / elem2
## [1] 1.228571
elem1 ^ elem2
## [1] 1.48387e+57
elem1 %% elem2
## [1] 8
elem1 %/% elem2
## [1] 1
sqrt(elem1)
## [1] 6.557439
log2(elem2)
## [1] 5.129283
tan(elem1)
## [1] -1.498387
Ejemplo con las estructuras de datos, en el siguiente orden,
Datos a usar, representando el nivel socioeconomico de profesores de una universidad.
nombres = c("Diego", "Alejandro", "Emanuel", "José", "Macarena", "Nicolás", "David", "Matías", "Elena")
nivel_economico = c("IR", "R", "IR", "P", "MR", "MP", "P", "IR", "P")
Se pasan los niveles socioeconomicos a una estructura de datos “factor”, dado que estas poseen variables categóricas las cuales permiten dividir a los usuarios bajo un criterio, que en este caso, es el nivel socioeconomico.
nivel_economico_factor = factor(nivel_economico, ordered = TRUE, levels = c("MP", "P", "IR", "R", "MR"), labels = c("Muy pobre", "Pobre", "I. Regular", "Rico", "Muy rico"))
nivel_economico_factor
## [1] I. Regular Rico I. Regular Pobre Muy rico Muy pobre Pobre
## [8] I. Regular Pobre
## Levels: Muy pobre < Pobre < I. Regular < Rico < Muy rico
Ahora se pasan los datos a una estructura de datos “data frame”.
nivel_economico_estudiantes = data.frame(Nombres = nombres, Nivel_economico = nivel_economico_factor)
nivel_economico_estudiantes
## Nombres Nivel_economico
## 1 Diego I. Regular
## 2 Alejandro Rico
## 3 Emanuel I. Regular
## 4 José Pobre
## 5 Macarena Muy rico
## 6 Nicolás Muy pobre
## 7 David Pobre
## 8 Matías I. Regular
## 9 Elena Pobre
Ahora, se hace uso de una tabla de frecuencia, con la cantidad de niveles socioeconomicos por cada categoría. Las cuales serán mostradas de más rico a más pobre.
cantidad_nivel = table(nivel_economico_estudiantes$Nivel_economico)
cantidad_nivel
##
## Muy pobre Pobre I. Regular Rico Muy rico
## 1 3 3 1 1
PPT = function(jugada){
# Funcion que permite jugar piedra papel o tijeras con una simulación de CPU
# Entrada: Un string que corresponde a la jugada que realizó el usuario
# Salida: String que indica al jugador si; ganó, perdió o hizo una jugada invalida
jugadas_disponibles = c("PIEDRA", "PAPEL", "TIJERAS")
jugada = toupper(jugada)
jugadaElegida = match(jugada, jugadas_disponibles)
if(is.na(jugadaElegida)){
return ("La jugada elegida no es válida")
}
# Simularemos una CPU que jugará contra el jugador
# A través de una función "random" con la cual elegirá su jugada
jugadaRandom = sample(1:3, 1)
jugadaCPU = jugadas_disponibles[jugadaRandom]
final = paste("CPU:", jugadaCPU, "\nJUGADOR: ", jugada)
if(jugadaElegida == jugadaRandom){
final = paste(final, "\nEL JUGADOR EMPATÓ")
}
else if((jugadaElegida + 1) %% 3 == jugadaRandom){
final = paste(final, "\nPERDIÓ EL JUGADOR")
}
else{
final = paste(final, "\nGANÓ EL JUGADOR")
}
return(final)
}
cat(PPT("TIJERAS"))
## CPU: PIEDRA
## JUGADOR: TIJERAS
## PERDIÓ EL JUGADOR
Se utilizan los datos del conjunto de datos chickwts
data("chickwts")
chickwts
## weight feed
## 1 179 horsebean
## 2 160 horsebean
## 3 136 horsebean
## 4 227 horsebean
## 5 217 horsebean
## 6 168 horsebean
## 7 108 horsebean
## 8 124 horsebean
## 9 143 horsebean
## 10 140 horsebean
## 11 309 linseed
## 12 229 linseed
## 13 181 linseed
## 14 141 linseed
## 15 260 linseed
## 16 203 linseed
## 17 148 linseed
## 18 169 linseed
## 19 213 linseed
## 20 257 linseed
## 21 244 linseed
## 22 271 linseed
## 23 243 soybean
## 24 230 soybean
## 25 248 soybean
## 26 327 soybean
## 27 329 soybean
## 28 250 soybean
## 29 193 soybean
## 30 271 soybean
## 31 316 soybean
## 32 267 soybean
## 33 199 soybean
## 34 171 soybean
## 35 158 soybean
## 36 248 soybean
## 37 423 sunflower
## 38 340 sunflower
## 39 392 sunflower
## 40 339 sunflower
## 41 341 sunflower
## 42 226 sunflower
## 43 320 sunflower
## 44 295 sunflower
## 45 334 sunflower
## 46 322 sunflower
## 47 297 sunflower
## 48 318 sunflower
## 49 325 meatmeal
## 50 257 meatmeal
## 51 303 meatmeal
## 52 315 meatmeal
## 53 380 meatmeal
## 54 153 meatmeal
## 55 263 meatmeal
## 56 242 meatmeal
## 57 206 meatmeal
## 58 344 meatmeal
## 59 258 meatmeal
## 60 368 casein
## 61 390 casein
## 62 379 casein
## 63 260 casein
## 64 404 casein
## 65 318 casein
## 66 352 casein
## 67 359 casein
## 68 216 casein
## 69 222 casein
## 70 283 casein
## 71 332 casein
Este conjunto de datos entrega el peso de los pollos luego de seis semanas de haber nacido y el suplemento alimenticio que se les dió durante su crecimiento. Los pollitos recién nacidos se distribuyeron aleatoriamente en seis grupos y cada grupo recibió un suplemento alimenticio diferente. Estos datos se utilizaron para determinar cuál era el suplemento alimenticio más efectivo, en pro de lograr el peso promedio mayor entre los seis grupos de pollos luego de las seis semanas.
summary(chickwts)
## weight feed
## Min. :108.0 casein :12
## 1st Qu.:204.5 horsebean:10
## Median :258.0 linseed :12
## Mean :261.3 meatmeal :11
## 3rd Qu.:323.5 soybean :14
## Max. :423.0 sunflower:12
En la tabla entregada se puede observar que la función summary entrega la cantidad de pollos alimentados con cada alimento, y de además mostrar el menor peso registrado, el primer cuartil, la mediana de los datos entregados, el tercer cuartil y el mayor peso registrado.
plot(chickwts)
El gráfico generado presenta la relación entre el peso de los pollitos y el complemento alimenticio que se le suministró a cada uno.