En el presente taller se desarrollan varios ejercicios utilizando el
lenguaje R y RMarkdown.
Cada ejercicio contiene el planteamiento del problema y el código
correspondiente para resolverlo.
Desarrollar programas básicos en R utilizando estructuras condicionales, ciclos y operaciones matemáticas.
Escribir un programa que pida la temperatura y si esta es en Fahrenheit o Celsius y presentar en pantalla su transformación en la otra medida.
temperatura <- as.numeric(readline(prompt = "Ingrese la temperatura: "))
## Ingrese la temperatura:
tipo <- readline(prompt = "Ingrese C si es Celsius o F si es Fahrenheit: ")
## Ingrese C si es Celsius o F si es Fahrenheit:
if(tipo == "C" || tipo == "c"){
fahrenheit <- (temperatura * 9/5) + 32
cat("La temperatura en Fahrenheit es:", fahrenheit)
} else if(tipo == "F" || tipo == "f"){
celsius <- (temperatura - 32) * 5/9
cat("La temperatura en Celsius es:", celsius)
} else{
cat("Opción incorrecta")
}
## Opción incorrecta
Escribir un programa que pregunte al usuario por el número de horas trabajadas y el costo por hora. Además, preguntar si existen horas extras y calcular la paga total.
horas <- as.numeric(readline(prompt = "Ingrese las horas trabajadas: "))
## Ingrese las horas trabajadas:
costo <- as.numeric(readline(prompt = "Ingrese el costo por hora: "))
## Ingrese el costo por hora:
extras <- as.numeric(readline(prompt = "Ingrese las horas extras: "))
## Ingrese las horas extras:
costo_extra <- as.numeric(readline(prompt = "Ingrese el costo por hora extra: "))
## Ingrese el costo por hora extra:
paga_normal <- horas * costo
paga_extra <- extras * costo_extra
paga_total <- paga_normal + paga_extra
cat("La paga total es:", paga_total)
## La paga total es: NA
Escribir un programa que lea un entero positivo, n, introducido por el usuario y después muestre en pantalla la suma de todos los enteros desde 1 hasta n.
n <- as.numeric(readline(prompt = "Ingrese un número entero positivo: "))
## Ingrese un número entero positivo:
suma <- (n * (n + 1)) / 2
cat("La suma de los números desde 1 hasta", n, "es:", suma)
## La suma de los números desde 1 hasta NA es: NA
Escribir un programa que pida al usuario su peso y estatura, calcule el índice de masa corporal y muestre el resultado.
peso <- as.numeric(readline(prompt = "Ingrese su peso en kg: "))
## Ingrese su peso en kg:
estatura <- as.numeric(readline(prompt = "Ingrese su estatura en metros: "))
## Ingrese su estatura en metros:
imc <- peso / (estatura^2)
cat("Tu índice de masa corporal es:", round(imc, 2))
## Tu índice de masa corporal es: NA
Escribir un programa que pregunte al usuario una cantidad a invertir, el interés anual y el número de años, y muestre el capital obtenido en la inversión.
capital <- as.numeric(readline(prompt = "Ingrese la cantidad a invertir: "))
## Ingrese la cantidad a invertir:
interes <- as.numeric(readline(prompt = "Ingrese el interés anual (%): "))
## Ingrese el interés anual (%):
anios <- as.numeric(readline(prompt = "Ingrese el número de años: "))
## Ingrese el número de años:
monto <- capital * (1 + interes/100)^anios
cat("El capital obtenido es:", round(monto, 2))
## El capital obtenido es: NA
Realizar un programa que pida el tiempo ya sea en horas, minutos o segundos, luego indicar en qué tipo de tiempo desea transformar y presentar el resultado.
tiempo <- as.numeric(readline(prompt = "Ingrese el tiempo: "))
## Ingrese el tiempo:
unidad <- readline(prompt = "Ingrese la unidad actual (h/m/s): ")
## Ingrese la unidad actual (h/m/s):
convertir <- readline(prompt = "Ingrese la unidad a transformar (h/m/s): ")
## Ingrese la unidad a transformar (h/m/s):
if(unidad == "h" && convertir == "m"){
resultado <- tiempo * 60
} else if(unidad == "h" && convertir == "s"){
resultado <- tiempo * 3600
} else if(unidad == "m" && convertir == "h"){
resultado <- tiempo / 60
} else if(unidad == "m" && convertir == "s"){
resultado <- tiempo * 60
} else if(unidad == "s" && convertir == "m"){
resultado <- tiempo / 60
} else if(unidad == "s" && convertir == "h"){
resultado <- tiempo / 3600
} else{
resultado <- tiempo
}
cat("El resultado es:", resultado)
## El resultado es: NA
Escribir un programa en el que se digiten varios números y luego los números se presenten en pantalla ordenados.
numeros <- as.numeric(strsplit(
readline(prompt = "Ingrese varios números separados por espacio: "),
" "
)[[1]])
## Ingrese varios números separados por espacio:
ordenados <- sort(numeros)
cat("Los números ordenados son:\n")
## Los números ordenados son:
print(ordenados)
## numeric(0)
Escribir un programa que calcule el factorial de un número digitado por el usuario.
numero <- as.numeric(readline(prompt = "Ingrese un número: "))
## Ingrese un número:
factorial_numero <- factorial(numero)
cat("El factorial de", numero, "es:", factorial_numero)
## El factorial de NA es: NA
Escribir un programa que pida un número e indique si el número es primo o no.
numero <- 7
primo <- TRUE
if(numero <= 1){
primo <- FALSE
} else{
for(i in 2:(numero - 1)){
if(numero %% i == 0){
primo <- FALSE
}
}
}
if(primo){
cat("El número es primo")
} else{
cat("El número no es primo")
}
## El número es primo
Escribir un programa que pida un número e indique si el número es par o impar.
numero <- 8
if(numero %% 2 == 0){
cat("El número es par")
} else{
cat("El número es impar")
}
## El número es par