a = 15
b = 30
c = 0
d = 3.14159265
vec = c(1, 2, 3, 4, 5)
vec2 = c(2, 4, 8, 10)round(d, 2) # redondear a 2 decimales## [1] 3.14
abs(-1*d) # valor absoluto## [1] 3.141593
factorial(a) # factorial de 15## [1] 1.307674e+12
exp(d) # exponencial## [1] 23.14069
tan(d) # tangente## [1] -3.589793e-09
atan(d) # arco tangente de d## [1] 1.262627
sum(vec) # suma los elementos de un vector## [1] 15
5 %% 2## [1] 1
7 %/% 3 ### [1] 2
floor(3.9) # redondea hacia abajo al entero más cercano## [1] 3
El código genera una tabla de conversión de grados Fahrenheit a Celsius utilizando una secuencia de números que van desde 0 hasta 100, incrementando en 10 en cada paso. La función “f_to_c” se encarga de convertir los grados Fahrenheit en grados Celsius utilizando la fórmula correspondiente. A continuación, se crea una matriz “table” combinando los datos de Fahrenheit y Celsius en dos columnas y se imprime la tabla en la consola utilizando la función “print”, especificando los nombres de las columnas como “Fahrenheit” y “Celsius”. En resumen, el código utiliza una secuencia numérica, una función de conversión y una matriz para generar una tabla de conversión de grados Fahrenheit a Celsius.
fahrenheit = seq(0, 100, by = 10)
# Function Fahrenheit a Celsius
f_to_c = function(temp) {
(temp - 32) * 5 / 9
}
celsius = f_to_c(fahrenheit)
# Tabla
table = cbind(Fahrenheit = fahrenheit, Celsius = celsius)
# Print
print(table, col.names = c("Fahrenheit", "Celsius"))## Fahrenheit Celsius
## [1,] 0 -17.777778
## [2,] 10 -12.222222
## [3,] 20 -6.666667
## [4,] 30 -1.111111
## [5,] 40 4.444444
## [6,] 50 10.000000
## [7,] 60 15.555556
## [8,] 70 21.111111
## [9,] 80 26.666667
## [10,] 90 32.222222
## [11,] 100 37.777778
El código utiliza una matriz booleana para representar la asistencia de varios estudiantes a lo largo de la semana. Cada fila de la matriz representa a un estudiante y cada columna representa un día de la semana. Si un valor en la matriz es “TRUE”, significa que el estudiante asistió a la clase ese día y si es “FALSE”, significa que no asistió.
La función “print_asistencia_porcentaje” itera sobre cada fila de la matriz, y para cada estudiante, cuenta la cantidad de días en que asistió a la clase y calcula el porcentaje de días de asistencia en relación al número total de días. Finalmente, imprime el porcentaje de asistencia para cada estudiante.
En resumen, el código deduce la asistencia de un estudiante a lo largo de la semana contando los valores “TRUE” en la fila correspondiente a ese estudiante en la matriz y calculando el porcentaje de asistencia en relación al número total de días de la semana.
# Imprime la asistencia (boolean) de los alumnos usando una matriz
estudiantes = c("Juan", "Pedro", "Diego", "Lucia", "Pia")
dias = c("Lun", "Mar", "Mie", "Jue", "Vie")
asistencias = matrix(c(TRUE, FALSE, TRUE, TRUE, TRUE,
TRUE, TRUE, FALSE, TRUE, FALSE,
FALSE, TRUE, FALSE, TRUE, TRUE,
TRUE, TRUE, FALSE, TRUE, TRUE,
TRUE, TRUE, TRUE, TRUE, FALSE),
nrow = 5, ncol = 5, byrow = TRUE,
dimnames = list(estudiantes, dias))
print(asistencias)## Lun Mar Mie Jue Vie
## Juan TRUE FALSE TRUE TRUE TRUE
## Pedro TRUE TRUE FALSE TRUE FALSE
## Diego FALSE TRUE FALSE TRUE TRUE
## Lucia TRUE TRUE FALSE TRUE TRUE
## Pia TRUE TRUE TRUE TRUE FALSE
print_asistencia_porcentaje = function(asistencias) {
num_dias = ncol(asistencias)
for (i in 1:nrow(asistencias)) {
estudiante = rownames(asistencias)[i]
asistencias_estudiante = asistencias[i, ]
porcentaje_asistencia = sum(asistencias_estudiante) / num_dias * 100 # true = 1
cat(sprintf("%s: %.2f%%\n", estudiante, porcentaje_asistencia))
}
}
print_asistencia_porcentaje(asistencias)## Juan: 80.00%
## Pedro: 60.00%
## Diego: 60.00%
## Lucia: 80.00%
## Pia: 80.00%
En este código se crea un vector llamado “colores” que contiene 10 elementos, cada uno de los cuales es un color. Luego, se utiliza la función factor() para convertir el vector de caracteres en un factor. Los factores son un tipo especial de objeto en R que se utilizan para almacenar datos categóricos. En este caso, los colores son un ejemplo de datos categóricos, ya que no pueden ser ordenados o cuantificados de manera numérica.
# Vector con colores
colores = c(
"Azul",
"Verde",
"Rojo",
"Rojo",
"Verde",
"Azul",
"Verde",
"Amarillo",
"Amarillo",
"Rojo"
)
# Convertir vector en un factor
fact_colores = factor(colores)
# Print Factor
print(fact_colores)## [1] Azul Verde Rojo Rojo Verde Azul Verde Amarillo
## [9] Amarillo Rojo
## Levels: Amarillo Azul Rojo Verde
print(table(fact_colores))## fact_colores
## Amarillo Azul Rojo Verde
## 2 2 3 3
Implementación del juego “Piedra, papel o tijeras”. La función fn_juego comienza generando una opción aleatoria (roca, papel o tijeras) para la computadora mediante el uso de la función sample. Luego, solicita al usuario que ingrese su elección. Después de verificar que la elección del usuario es válida, el código determina si el usuario ganó, perdió o empató con la computadora. Finalmente, se imprime el resultado del juego y se devuelve en la variable resultado.
fn_juego = function() {
# Se utiliza sample para seleccionar de forma aleatoria una opcion para el computador
# (roca, papel, tijeras)
computadora = sample(c("roca", "papel", "tijeras"), size = 1)
# Pide al usuario que ingrese opcion
usuario = readline("Ingresa (roca, papel, tijeras): ")
# convierte el string a lowercase y elimina los espacios en blanco
usuario = tolower(trimws(usuario))
# Check si el string ingresado por el usuario es correcto
if (usuario %in% c("roca", "papel", "tijeras")) {
# Duelo
if (usuario == computadora) {
resultado = "Empate"
} else if (usuario == "roca" && computadora == "tijeras") {
resultado = "Ganaste!"
} else if (usuario == "papel" && computadora == "roca") {
resultado = "Ganaste!"
} else if (usuario == "tijeras" && computadora == "papel") {
resultado = "Ganaste!"
} else {
resultado = "Perdiste!"
}
} else {
resultado = "Debes ingresar roca, papel o tijeras."
}
# Print el resultadoado
cat("Usuario:", usuario, "\n")
cat("Computadora:", computadora, "\n")
cat(resultado, "\n")
return(resultado)
}
fn_juego()## Ingresa (roca, papel, tijeras):
## Usuario:
## Computadora: papel
## Debes ingresar roca, papel o tijeras.
## [1] "Debes ingresar roca, papel o tijeras."
La diferencia, al menos en el caso de vectores, radica en que el operador & permite evaluar cada elemento de los vectores y retornar un resultado vectorizado, mientras que el operador && evalúa solamente el primer elemento de cada vector y retorna un resultado no vectorizado. En otras palabras, si el primer resultado con && es TRUE o FALSE, el resto de los elementos del vector no son evaluados y se asume que son el resultado anteriormente obtenido, mientras que & evalúa todos los elementos y devuelve el resultado de forma vectorizada.
(c(-1, 0, 1) >= 0) & (c(-1, 0, 1) <= 0)## [1] FALSE TRUE FALSE
c(TRUE, FALSE, FALSE) & c(TRUE, TRUE, TRUE)## [1] TRUE FALSE FALSE
#c(TRUE, TRUE) && c(FALSE, TRUE)
(c(-1, 0, 1) >= 0) && (c(-1, 0, 1) <= 0)## [1] FALSE
c(TRUE, FALSE, FALSE) && c(TRUE, TRUE, TRUE)## [1] TRUE
El conjunto de datos “Locations of Earthquakes off Fiji” proporciona información sobre la ubicación de 1000 eventos sísmicos con magnitud de MB>4.0 que ocurrieron en un cubo cerca de Fiji desde 1964. Los datos incluyen la latitud y longitud del evento, su profundidad en kilómetros, la magnitud de Richter y el número de estaciones que reportaron el evento. El conjunto de datos es una muestra de un conjunto de datos más grande con 5000 observaciones.
El conjunto de datos “Locations of Earthquakes off Fiji” es útil desde una perspectiva estadística y probabilística para prever la probabilidad de terremotos futuros en la región, así como para estudiar la distribución espacial de los terremotos. Los datos se pueden utilizar para estimar la frecuencia de terremotos y construir modelos probabilísticos de la ocurrencia de terremotos en la zona cercana a Fiji. Además, la distribución espacial de los terremotos puede ser útil para comprender la tectónica de placas y la geología de la región. En general, el conjunto de datos es una valiosa fuente de información para el análisis estadístico y modelización de la actividad sísmica en la región cercana a Fiji.
Los conjuntos de datos del proyecto Harvard PRIM-H fueron obtenidos por el propio proyecto de Harvard PRIM-H. A su vez, lo obtuvieron del Dr. John Woodhouse, del Departamento de Geofísica de la Universidad de Harvard.
En este tipo de datos solo
Length Class Mode
En el gráfico generado con Plotly, se pueden observar los terremotos registrados en las costas de Fiji. Los puntos en el gráfico representan la ubicación geográfica del epicentro del terremoto. La escala de color a la derecha muestra la magnitud del terremoto en la escala de Richter. Los terremotos de mayor magnitud tienen un color más oscuro, mientras que los de menor magnitud tienen un color más claro.
Además, es posible hacer zoom en el mapa para ver con más detalle la ubicación de los terremotos. Al pasar el cursor sobre cada punto, se muestra información detallada sobre la magnitud y la profundidad del terremoto.
En general, este gráfico permite visualizar de manera clara y concisa la distribución geográfica y la magnitud de los terremotos en la región de Fiji, lo que resulta de gran utilidad para comprender la actividad sísmica en esta zona del planeta.
library(plotly)
data('quakes')
# Nombres variables (lat, long, depth, mag, stations)
nombres = c("Latitud", "Longitud", "Profundidad", "Magnitud", "Estaciones")
# Nombres de columnas de datos
colnames(quakes) = nombres
# Plotly, puntos interactivos
fig = plot_ly(quakes, x = ~Longitud, y = ~Latitud, type = "scatter", mode = "markers",
marker = list(color = ~Profundidad, size = ~Magnitud, sizemode = "diameter",
sizemin = 1, sizemax = 10, opacity = 0.8,
symbol = 'circle'),
text = paste("Magnitud:", quakes$Magnitud, "<br>Profundidad:", quakes$Profundidad, "<br>Estaciones:", quakes$Estaciones),
hovertemplate = "%{text}<br>Latitud: %{y}<br>Longitud: %{x}<extra></extra>",
colorbar = list(title = "Profundidad (km)"))
fig = fig %>% layout(title = "Ubicaciones de Terremotos frente a Fiji",
xaxis = list(title = "Longitud"),
yaxis = list(title = "Latitud"),
showlegend = FALSE,
hovermode = "x")
fig