# Suma
suma1 <- 20+36
print(suma1)
## [1] 56
suma2 <- 51+68
suma3 <- 100+25
# Potenciación
potencia <- 2^2
Las variables lógicas tienen solo dos estados
logi <- TRUE
#Operador AND
TRUE & TRUE
## [1] TRUE
TRUE & FALSE
## [1] FALSE
FALSE & FALSE
## [1] FALSE
# Operador OR
TRUE | TRUE
## [1] TRUE
TRUE || FALSE
## [1] TRUE
FALSE | FALSE
## [1] FALSE
# Operador NOT
!logi
## [1] FALSE
# Comparaciones
5==3
## [1] FALSE
5!=3
## [1] TRUE
5>3
## [1] TRUE
5<=3
## [1] FALSE
5<3
## [1] FALSE
5>=3
## [1] TRUE
# Estructuras de control
## if, else if, else
x <- 10
# Determinar si un número es positivo, negativo o cero
if (x>0){
print("x es positivo")
} else if (x==0){
print("x es cero")
} else {
print("x es negativo")
}
## [1] "x es positivo"
# Estructura for
for(i in 1:5){
print (i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
vec <- c("a", "b", "c")
length(vec)
## [1] 3
for(val in vec){
print(paste("El elemento del vector es",val))
}
## [1] "El elemento del vector es a"
## [1] "El elemento del vector es b"
## [1] "El elemento del vector es c"
# Acceder al elemento del vector que está en la posición 1 entre llaves
vec[1]
## [1] "a"
for(val in vec){
print(paste("El elemento del vector es",val))
}
## [1] "El elemento del vector es a"
## [1] "El elemento del vector es b"
## [1] "El elemento del vector es c"
# for para iterar o recorrer los índices del vector
# El elemento en la posición 1 es
for(i in 1:length(vec)){
print(paste("El elemento en la posición", i, "es", vec[i]))
}
## [1] "El elemento en la posición 1 es a"
## [1] "El elemento en la posición 2 es b"
## [1] "El elemento en la posición 3 es c"
# Estructura de control while
i <- 5
while(i<=5){
print(i)
i <- i+1
}
## [1] 5
# Estructura de control switch
value <- 3
result <- switch(value,"1"="one",
"2"="two",
"3"="three",
"invalid")
print(result)
## [1] "three"
# Definir una función
# La función es evaluar número
evaluar_num <- function(x){
if (x>0){
print("x es positivo")
} else if (x==0){
print("x es cero")
} else {
print("x es negativo")
}
}
evaluar_num(3)
## [1] "x es positivo"
# Función que sume dos números
f_suma <- function (x,y){
return (x+y)
}
f_suma(3,5)
## [1] 8
# Actividad if, else if, else
## PUNTO 1
## Código que verifica si una persona es menor de edad, mayor de edad o un adulto mayor
## basándose en su edad y luego imprima un mensaje correspondiente
## menor de edad <18, adulto mayor >=65)
evaluar_edad <- function(e){
if (e<18){
print("es menor de edad")
} else if (e==18){
print("es mayor de edad")
} else if (e<65){
print("es mayor de edad")
} else {
print("es adulto mayor")
}
}
evaluar_edad(18)
## [1] "es mayor de edad"
# Actividad if, else if, else
# PUNTO 2
## Escribe un código que verifique la temperatura y determine si está "fría" (<10 °C),
## "templada" (10 °C a 25 °C), o "caliente" (>25 °C) y luego imprima el mensaje.
evaluar_temp <- function(t){
if (t<10){
print("la temperatura es fría")
} else if (t>=10 && t<=25){
print("la temperatura es templada")
} else {
print("la temperatura es caliente")
}
}
evaluar_temp(10)
## [1] "la temperatura es templada"
evaluar_temp(-2)
## [1] "la temperatura es fría"
evaluar_temp(20)
## [1] "la temperatura es templada"
evaluar_temp(25)
## [1] "la temperatura es templada"
evaluar_temp(41)
## [1] "la temperatura es caliente"
# Actividad for
## PUNTO 1
## Escribe un código que imprima cada letra de un vector de caracteres
## Este es un bucle para iterar sobre cada letra de cada palabra del vector v_char
v_char <- c("Hola", "a", "todos", "en", "R")
for (palabra in v_char) {
for (letra in strsplit(palabra, "")[[1]]) {
cat(letra, " ")
}
}
## H o l a a t o d o s e n R
# Actividad for
## PUNTO 2
## Escribe un código que recorra un vector de números y calcula la
## suma de todos los números en el vector
## Este es un bucle para iterar sobre cada número del vector v_num
v_num <- c(10, 25, 39, 41, 53)
suma_v <- 0
for (numero in v_num) {
suma_v <- suma_v + numero
}
print(suma_v)
## [1] 168
# Actividad for
## PUNTO 3
## Escribe un código que recorra un vector de nombres y salude a cada
##persona imprimiendo "¡Hello, [nombre]!"
v_nombre <- c("Andrea", "Olga", "Luciana")
for (i in 1:length(v_nombre)) {
print (paste ("Hello,", v_nombre[i]))
}
## [1] "Hello, Andrea"
## [1] "Hello, Olga"
## [1] "Hello, Luciana"
# Actividad while
##PUNTO 1
## Escribe un código que use un bucle while para contar del 1 al 10 e
## imprima cada número. Si el número es mayor que 5, imprime un mensaje
## adicional indicando que el número es mayor que 5.
## Iniciar un contador
contar <- 1
## Contar del 1 al 10
while (contar <= 10) {
cat("Número=", contar)
if (contar > 5) {
cat(" ¡Este número es mayor que 5!\n")
} else {
cat("\n")
}
contar <- contar + 1
}
## Número= 1
## Número= 2
## Número= 3
## Número= 4
## Número= 5
## Número= 6 ¡Este número es mayor que 5!
## Número= 7 ¡Este número es mayor que 5!
## Número= 8 ¡Este número es mayor que 5!
## Número= 9 ¡Este número es mayor que 5!
## Número= 10 ¡Este número es mayor que 5!
# Actividad while
##PUNTO 2
## Escribe un código que use un bucle while para sumar los números del
## 1 al 100 e imprima el resultado
# Las variables
contar2 <- 1
suma_v <- 0
while (contar2 <= 100) {
suma_v <- suma_v + contar2
contar2 <- contar2 + 1
}
# Imprimir la suma
cat("La suma es igual a:", suma_v, "\n")
## La suma es igual a: 5050
# Actividad while
## PUNTO 3
## Escribe un código que use un bucle while para restar 1 de un número n
## dado hasta que n sea 0 e imprima el valor de n en cada iteración
evaluar_suma <- function(n){
while (n > 0) {
cat("n =", n, "\n")
n <- n - 1
}
}
evaluar_suma(5)
## n = 5
## n = 4
## n = 3
## n = 2
## n = 1
# Actividad switch
## PUNTO 1
## Escribe un código que use la estructura switch para imprimir el
## nombre de un día de la semana basado en un número del 1 al 7
print_dia <- function(num_dia) {
switch(num_dia,
"1" = cat("Lunes\n"),
"2" = cat("Martes\n"),
"3" = cat("Miércoles\n"),
"4" = cat("jueves\n"),
"5" = cat("Viernes\n"),
"6" = cat("Sábado\n"),
"7" = cat("Domingo\n"),
cat("Número inválido para el día\n")
)
}
print_dia(1)
## Lunes
print_dia(5)
## Viernes
print_dia(8)
## Número inválido para el día
# Actividad switch
## PUNTO 2
## Escribe un código que use la estructura switch para determinar el tipo
## de una variable dada (character, numeric, logical, etc) e imprima un mensaje
det_tipo <- function(vartipo) {
tipo <- typeof(vartipo)
texto <- switch(tipo,
"character" = "La variable es de tipo caracter.",
"integer" = "La variable es de tipo entero.",
"double" = "La variable es de tipo numéro decimal.",
"logical" = "La variable es de tipo lógico.")
cat(texto, "\n")
}
det_tipo("Mi nombre es Andrea Zabala Q.")
## La variable es de tipo caracter.
det_tipo(18L) ## Número entero debe llevar el sufijo L
## La variable es de tipo entero.
det_tipo(2.587496)
## La variable es de tipo numéro decimal.
det_tipo(FALSE)
## La variable es de tipo lógico.
det_tipo(TRUE)
## La variable es de tipo lógico.
# Actividad switch
## PUNTO 3
## Escribe un código que use la estructura switch para imprimir el
## nombre de un mes basado en el número del 1 al 12
print_mes <- function(num_mes) {
switch(num_mes,
"1" = cat("Enero\n"),
"2" = cat("Febrero\n"),
"3" = cat("Marzo\n"),
"4" = cat("Abril\n"),
"5" = cat("Mayo\n"),
"6" = cat("Junio\n"),
"7" = cat("Julio\n"),
"8" = cat("Agosto\n"),
"9" = cat("Septiembre\n"),
"10" = cat("Octubre\n"),
"11" = cat("Noviembre\n"),
"12" = cat("Diciembre\n"),
cat("Número inválido para el mes\n")
)
}
print_mes(1)
## Enero
print_mes(6)
## Junio
print_mes(12)
## Diciembre
print_mes(15)