Estos son otros operadores matemáticos posibles de utilizar dentro de R:
v1 <- -4
abs(v1)
## [1] 4
v2 <- 4
abs(v2)
## [1] 4
v1 <- 2.5
ceiling(v1)
## [1] 3
v1 <- 2.5
floor(v1)
## [1] 2
v1 <- 2
exp(v1)
## [1] 7.389056
v1 <- c(2.1,4.3,6.8)
trunc(v1)
## [1] 2 4 6
cos(pi/4)
## [1] 0.7071068
tan(pi/4)
## [1] 1
factorial(5)
## [1] 120
v1 <- c(1,2,3,4,5,6)
mean(v1)
## [1] 3.5
v1 <- c(1,2,3,4,5,6)
sd(v1)
## [1] 1.870829
Los arrays en R son estructuras de almacenamiento de datos en 2 o más dimensiones. Esto quiere decir que utiliza matrices para almacenar datos en distintos niveles de estas. Crear un array (2,3,3) genera 3 matrices de 2x3. Además es posible entregarle un nombre a las filas, columnas y matrices que se generan dentro del array, almacenando estos nombres en 3 vectores distintos y entregandolos como lista.
Por ejemplo:
elementos <- c(1,2,3,4,5,6,7,8)
dimension <- c(2,2,2)
columnas <- c('col1','col2')
filas <- c('fila1','fila2')
matrices <- c('matriz1','matriz1')
A = array(elementos, dim = dimension, dimnames = list(filas,columnas,matrices))
A
## , , matriz1
##
## col1 col2
## fila1 1 3
## fila2 2 4
##
## , , matriz1
##
## col1 col2
## fila1 5 7
## fila2 6 8
Es posible obtener una matriz específica del array con:
A[,,1]
## col1 col2
## fila1 1 3
## fila2 2 4
Así como obtener una columna, una fila o un elemento específico del array:
A[,2,1]
## fila1 fila2
## 3 4
A[1,,1]
## col1 col2
## 1 3
A[1,2,1]
## [1] 3
No solo se pueden realizar matrices con valores en palabras o números, sino que se pueden utilizar con valores booleanos:
vector <- c(TRUE, FALSE, FALSE, TRUE)
boolmatrix <- matrix(vector, ncol=2, nrow=2)
boolmatrix
## [,1] [,2]
## [1,] TRUE FALSE
## [2,] FALSE TRUE
En estas podemos realizar las mismas operaciones que en una matriz común, pero los valores que esta variarán dependiendo de la operación utilizada.
boolmatrix*boolmatrix
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
det(boolmatrix)
## [1] 1
solve(boolmatrix)
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
diag(boolmatrix)
## [1] TRUE TRUE
Como se puede observar, los valores booleanos se consideran valores 0 y 1 para FALSE y TRUE respectivamente
mano <- c('piedra','papel','tijera')
cachipum <- function(player){
bot <- sample(mano,1)
if(player=='piedra'){
if(bot=='piedra'){
return('Piedra y Piedra, Empate')
}
if(bot=='papel'){
return('Piedra y Papel, Perdiste')
}
if(bot=='tijera'){
return('Piedra y Tijeras, Ganaste')
}
}
if(player=='papel'){
if(bot=='piedra'){
return('Papel y Piedra, Ganaste')
}
if(bot=='papel'){
return('Papel y Papel, Empate')
}
if(bot=='tijera'){
return('Papel y Tijera, Perdiste')
}
}
if(player=='tijera'){
if(bot=='piedra'){
return('Tijera y Piedr, Perdiste')
}
if(bot=='papel'){
return('Tijera y Papel, Ganaste')
}
if(bot=='tijera'){
return('Tijera y Tijera, Empate')
}
}
}
Este código puede realizar un juego de piedra, papel y tijeras contra una computadora. Por ejemplo:
cachipum('piedra')
## [1] "Piedra y Papel, Perdiste"
Así como también se puede jugar otra mano, como:
cachipum('papel')
## [1] "Papel y Papel, Empate"
Donde nos enfrentaremos a una jugada aleatoria todo el tiempo.
Para este desafío se utilizará la base de datos ‘Quakes’. Este conjunto de datos almacena información sobre distintos eventos sísmicos ocurridos cercanos a la isla de Fiji, a partir del año 1964. Estos eventos poseen 5 variables distintas. La latitud y longitud que indican la ubicación del suceso, la profundidad con que se detectó la fuente del sismo, la magnitud en escala de Richter y la cantidad de estaciones que reportaron el suceso.
Este conjunto de datos debe haber sido utilizado para tener un conocimiento de las actividades sísmicas en la zona, intentando predecir la situación para eventos futuros, los valores más posibles de magnitud, así como los lugares y momentos en que estos ocurran.
Los valores que pueden tomar las distintas variables son:
Latitud: Variable de tipo Continua. Esta variable se mide en grados, los cuales varian entre -90º y 90º o de 0º a 180º. Dentro de las mediciones, este valor solo se mueve entre los valores -38,59 y -10,72.
Longitud: Variable de tipo Continua. Esta variable se mide en grados, con valores posibles que van desde -180º a 180º o de 0º a 360º. Dentro de las mediciones, estos valores solo varían entre 165.7 y 188.1
Profundidad(depth): Variable de tipo Continua. La profundidad es un valor que se mide en grados. Esta puede variar en todos los reales positivos, pero en las mediciones tienen una variación entre 40 m y 680 m.
Magnitud: Variable de tipo Continua. La magnitud, medida en la escala de Richter, varían entre 0 y 10. No tiene una unidad de medida específica. Dentro de la medición, estos valores se encuentran entre 4 y 6,4.
Stations: Variable de tipo Discreta. Este valor indica la cantidad de estaciones que registraron el movimiento sísmico específico.
Al ejecutar la función summary aparecen los siguientes datos:
## lat long depth mag
## Min. :-38.59 Min. :165.7 Min. : 40.0 Min. :4.00
## 1st Qu.:-23.47 1st Qu.:179.6 1st Qu.: 99.0 1st Qu.:4.30
## Median :-20.30 Median :181.4 Median :247.0 Median :4.60
## Mean :-20.64 Mean :179.5 Mean :311.4 Mean :4.62
## 3rd Qu.:-17.64 3rd Qu.:183.2 3rd Qu.:543.0 3rd Qu.:4.90
## Max. :-10.72 Max. :188.1 Max. :680.0 Max. :6.40
## stations
## Min. : 10.00
## 1st Qu.: 18.00
## Median : 27.00
## Mean : 33.42
## 3rd Qu.: 42.00
## Max. :132.00
Podemos observar que se nos dan varios datos para cada columna que poseen los datos:
Al ejecutar la función plot, se puede observar el siguiente gráfico:
Al utilizar esta función se puede observar toda la familia de gráficas posibles de realizar con los datos de la tabla, intersectando las columnas entre sí. Por ejemplo se puede observar en la parte superior las gráficas Longitud X Latitud, Profundidad X Latitud, Magnitud X Latitud y Estaciones X Latitud. De la misma manera se pueden nombrar todas las demás tablas, incluyendo las tablas inversas de estas.