En R, las funciones son bloques de código reutilizables que permiten realizar tareas específicas. Saber definir y utilizar funciones es fundamental para automatizar análisis, mejorar la organización del código y evitar repeticiones.
En este documento aprenderás cómo utilizar funciones base, cómo definir tus propias funciones, cómo usarlas con vectores y cómo graficar sus resultados.
R incluye muchas funciones ya incorporadas (“funciones base”) que facilitan operaciones comunes con números, vectores y otros objetos. Algunas de las más usadas son:
Para elevar un número a una potencia se utiliza el operador
^
o la función power()
:
2^3 # Resultado: 8
## [1] 8
2**3 # Resultado: 8
## [1] 8
Se usa la función sqrt()
:
sqrt(9) # Resultado: 3
## [1] 3
sqrt(c(4, 9, 16)) # Resultado: 2 3 4
## [1] 2 3 4
9**(1/2)
## [1] 3
La función sum()
calcula la suma total de un vector:
sum(c(1, 2, 3, 4)) # Resultado: 10
## [1] 10
La función prod()
calcula el producto de todos los
elementos de un vector:
prod(c(1, 2, 3, 4)) # Resultado: 24
## [1] 24
La función cumsum()
entrega la suma acumulada de un
vector:
cumsum(c(1, 2, 3, 4)) # Resultado: 1 3 6 10
## [1] 1 3 6 10
La función mean()
retorna el promedio de los valores de
un vector:
mean(c(5, 7, 9)) # Resultado: 7
## [1] 7
La función sd()
calcula la desviación estándar de un
vector numérico:
sd(c(5, 7, 9)) # Resultado: 2
## [1] 2
Las funciones max()
y min()
retornan el
mayor y menor valor de un vector:
max(c(2, 8, 3, 5)) # Resultado: 8
## [1] 8
min(c(2, 8, 3, 5)) # Resultado: 2
## [1] 2
La función length()
indica cuántos elementos tiene un
vector:
length(c(10, 20, 30, 40)) # Resultado: 4
## [1] 4
round(x)
redondea al entero más cercano.floor(x)
redondea hacia abajo.ceiling(x)
redondea hacia arriba.round(3.6) # Resultado: 4
## [1] 4
floor(3.6) # Resultado: 3
## [1] 3
ceiling(3.2) # Resultado: 4
## [1] 4
Estas funciones base te permiten operar y analizar datos rápidamente sin necesidad de definir funciones propias.
Una función en R es un conjunto de instrucciones agrupadas bajo un nombre, que puede recibir valores de entrada (argumentos), procesarlos y devolver un resultado (output).
La estructura general de una función en R es la siguiente:
nombre_funcion <- function(argumentos) {
# Cuerpo de la función
resultado <- ... # Operaciones
return(resultado)
}
# Una función que suma dos números
sumar <- function(a, b) {
resultado <- a + b
return(resultado)
}
sumar(3, 5) # Resultado: 8
## [1] 8
En R, es común trabajar con vectores numéricos. Las funciones pueden procesar estos vectores y devolver resultados útiles.
suma_vector <- function(vec) {
suma <- sum(vec)
return(suma)
}
mi_vector <- c(2, 4, 6, 8)
suma_vector(mi_vector) # Resultado: 20
## [1] 20
promedio_vector <- function(vec) {
promedio <- mean(vec)
return(promedio)
}
promedio_vector(c(10, 20, 30)) # Resultado: 20
## [1] 20
desviacion_vector <- function(vec) {
desv <- sd(vec)
return(desv)
}
desviacion_vector(c(5, 7, 11, 15))
## [1] 4.434712
Supongamos que queremos crear una función \(f(x) = x^2 - 2x + 1\) y graficarla en el intervalo [-5, 5].
f <- function(x) {
return(x^2 - 2*x + 1)
}
x <- seq(-5, 5, by = 0.1) # Vector desde -5 hasta 5, de 0.1 en 0.1
y <- f(x)
plot(x, y, type = "l", col = "blue", lwd = 2,
main = "Gráfica de f(x) = x^2 - 2x + 1",
xlab = "x", ylab = "f(x)")
grid()
Crear una función que reciba un vector numérico y devuelva el valor máximo y mínimo como una lista.
Definir una función que, dado un vector, devuelva un nuevo vector con cada elemento elevado al cuadrado. Pruébala con el vector c(1, 2, 3, 4, 5).
Crear una función que calcule la suma acumulada de un vector (usa la función cumsum de R). Grafica la suma acumulada usando plot().
Define una función g(x) = sin(x) y grafícala en el intervalo [0, 2π].
Construir una función que genere números aleatorios entre cero y uno hasta que la suma de éstos números supere por primera vez el valor de 3. La función debe entregar la cantidad de números aleatorios generados para que se cumpla la condición.
Construir una función que, dado un número entero positivo (cota) ingresado por el usuario, genere números aleatorios entre cero y uno hasta que la suma de los números generados exceda por primera vez la cota. La función debe entregar un vector con los números aleatorios, la suma y la cantidad de números aleatorios. Si el usuario no ingresa el valor de la cota, se debe asumir igual a 1.
Construya una función que reciba dos números de la recta real y que entregue el punto médio de estos números. El resultado debe ser un mensaje por pantalla.
Construya una función que reciba dos números reales a y b, la función debe decir cuál es el mayor de ellos.
Escriba una función llamada media que calcule la media muestral de un vector numérico x ingresado a la función.
Escribir una función que calcule la velocidad de un proyectil dado que el usuario ingresa la distancia recorrida en Km y el tiempo necesario en minutos. Expresar el resultado se debe entregar en metros/segundo.