R es un lenguaje y entorno de programación diseñado específicamente para el análisis estadístico, la visualización de datos y la ciencia de datos en general. Es ampliamente utilizado por estadísticos, economistas, científicos, y analistas de datos debido a su potencia y flexibilidad.
¿Por qué aprender R?
En este documento presentamos algunos ejercicios básicos para familiarizarnos con la sintaxis de R, sus estructuras de control, lectura de datos desde la consola y operaciones comunes como conversiones, cálculos matemáticos y manipulaciones numéricas.
Este ejercicio permite convertir una temperatura de Fahrenheit a Celsius y viceversa.
cat("Ingrese la temperatura: ")
## Ingrese la temperatura:
temp <- as.numeric(readline())
cat("¿Está en (F)ahrenheit o (C)elsius?: ")
## ¿Está en (F)ahrenheit o (C)elsius?:
unidad <- toupper(readline())
if (unidad == "F") {
celsius <- (temp - 32) * 5 / 9
cat("La temperatura en Celsius es:", round(celsius, 2), "°C\n")
} else if (unidad == "C") {
fahrenheit <- temp * 9 / 5 + 32
cat("La temperatura en Fahrenheit es:", round(fahrenheit, 2), "°F\n")
} else {
cat("Unidad no válida.\n")
}
## Unidad no válida.
Calcula la paga total de un trabajador considerando si existen o no horas extras.
cat("Horas trabajadas: ")
## Horas trabajadas:
horas <- as.numeric(readline())
cat("Costo por hora: ")
## Costo por hora:
costo <- as.numeric(readline())
cat("¿Existen horas extras? (s/n): ")
## ¿Existen horas extras? (s/n):
resp <- tolower(readline())
if (resp == "s") {
cat("Horas extras: ")
extras <- as.numeric(readline())
cat("Costo por hora extra: ")
costo_extra <- as.numeric(readline())
paga <- horas * costo + extras * costo_extra
} else {
paga <- horas * costo
}
cat("La paga total es:", paga, "\n")
## La paga total es: NA
Utiliza una fórmula matemática para encontrar la suma de los primeros n enteros positivos.
cat("Ingrese un número entero positivo: ")
## Ingrese un número entero positivo:
n <- as.integer(readline())
suma <- n * (n + 1) / 2
cat("La suma de los primeros", n, "enteros positivos es:", suma, "\n")
## La suma de los primeros NA enteros positivos es: NA
Este cálculo se utiliza en salud para estimar el estado corporal.
cat("Peso en kg: ")
## Peso en kg:
peso <- as.numeric(readline())
cat("Estatura en metros: ")
## Estatura en metros:
estatura <- as.numeric(readline())
imc <- peso / (estatura^2)
cat("Tu índice de masa corporal es", round(imc, 2), "\n")
## Tu índice de masa corporal es NA
Permite calcular cuánto dinero se obtiene después de un número de años, considerando interés compuesto.
cat("Cantidad a invertir: ")
## Cantidad a invertir:
cantidad <- as.numeric(readline())
cat("Interés anual (en %): ")
## Interés anual (en %):
interes <- as.numeric(readline()) / 100
cat("Número de años: ")
## Número de años:
años <- as.numeric(readline())
capital_final <- cantidad * (1 + interes)^años
cat("Capital obtenido:", round(capital_final, 2), "\n")
## Capital obtenido: NA
Convierte valores de tiempo entre horas, minutos y segundos.
cat("Ingrese el tiempo: ")
## Ingrese el tiempo:
tiempo <- as.numeric(readline())
cat("Unidad original (h/m/s): ")
## Unidad original (h/m/s):
unidad_orig <- tolower(readline())
cat("Unidad a convertir (h/m/s): ")
## Unidad a convertir (h/m/s):
unidad_dest <- tolower(readline())
segundos <- switch(unidad_orig, h = tiempo * 3600, m = tiempo * 60, s = tiempo)
resultado <- switch(unidad_dest, h = segundos / 3600, m = segundos / 60, s = segundos)
cat("El tiempo convertido es:", resultado, unidad_dest, "\n")
## El tiempo convertido es:
Lee una lista de números separados por espacios y los ordena de menor a mayor.
cat("Ingrese números separados por espacios: ")
## Ingrese números separados por espacios:
numeros <- as.numeric(strsplit(readline(), " ")[[1]])
ordenados <- sort(numeros)
cat("Números ordenados:", ordenados, "\n")
## Números ordenados:
El factorial es el producto de todos los números enteros desde 1 hasta n.
cat("Ingrese un número: ")
## Ingrese un número:
n <- as.integer(readline())
if (!is.na(n)) {
factorial <- 1
for (i in 1:n) {
factorial <- factorial * i
}
cat("El factorial de", n, "es", factorial, "\n")
} else {
cat("Entrada inválida.\n")
}
## Entrada inválida.
Un número primo solo es divisible por 1 y por sí mismo.
cat("Ingrese un número: ")
## Ingrese un número:
n <- as.integer(readline())
if (!is.na(n)) {
es_primo <- TRUE
if (n <= 1) {
es_primo <- FALSE
} else {
for (i in 2:floor(sqrt(n))) {
if (n %% i == 0) {
es_primo <- FALSE
break
}
}
}
if (es_primo) {
cat(n, "es un número primo\n")
} else {
cat(n, "no es un número primo\n")
}
} else {
cat("Entrada inválida.\n")
}
## Entrada inválida.
Determina si un número ingresado es divisible entre 2.
cat("Ingrese un número: ")
## Ingrese un número:
n <- as.integer(readline())
if (!is.na(n)) {
if (n %% 2 == 0) {
cat(n, "es un número par\n")
} else {
cat(n, "es un número impar\n")
}
} else {
cat("Entrada inválida.\n")
}
## Entrada inválida.
¡Felicidades! Ya diste un primer paso en el aprendizaje del lenguaje R. Estos ejercicios representan una base fundamental para construir habilidades más complejas en análisis de datos, modelado estadístico y ciencia de datos.
Recuerda: la práctica constante es la clave para dominar R. ```