R Funciones
Una función es un conjunto de declaraciones que ejecutan juntas una tarea. El lenguaje R en sí proporciona muchas funciones integradas; por supuesto, también podemos crear nuestras propias funciones.
Puede dividir el código en diferentes funciones. Cómo dividir el código en diferentes funciones depende de usted, pero lógicamente, la división generalmente se realiza según que cada función ejecute una tarea específica.
FunciónDeclaraciónLe dice al compilador el nombre, el tipo de retorno y los parámetros de la función. La funciónDefiniciónProporciona el cuerpo real de la función.
En R, una función es un objeto que puede tener atributos.
Definir funciones
La definición de una función generalmente consta de las siguientes partes:
- Nombre de la función:Asigna un nombre único a la función para poder usarlo al llamarla.
- Parámetros:Definen los valores de entrada que acepta la función. Los parámetros son opcionales y pueden ser varios.
- Cuerpo de la función:Contiene el bloque de código que se ejecuta realmente, encerrado entre llaves{}.
- Valor de retorno:Especifica el resultado de salida de la función, usando la palabra clave
return。
En R, la definición de una función usafunctionla palabra clave, la forma general es la siguiente:
function_name <- function(arg_1, arg_2, ...) {
# 函数体
# 执行的代码块
return(output)
}
Nota:
- function_name: es el nombre de la función
- arg_1, arg_2, ...: lista de parámetros formales
El valor de retorno de la función usareturn()。
A continuación se muestra un ejemplo sencillo que muestra cómo definir y usar una función:
Ejemplo
add_numbers <- function(x, y) {
result <- x + y
return(result)
}
# Llamar a la función
sum_result <- add_numbers(3, 4)
print(sum_result) # Salida 7
En el código anterior, definimos una función llamadaadd_numbersque acepta dos parámetrosxyy. El código del cuerpo de la función suma estos dos parámetros y almacena el resultado en la variableresult. Finalmente, se usareturnla palabra clave para devolver el resultado.
Para llamar a la función, usamos el nombre de la función seguido de la lista de parámetros, pasando los valores de los parámetros a la función. En este ejemplo, llamamos a laadd_numbersfunción y pasamos los parámetros 3 y 4. Después de que la función se ejecuta, devuelve el resultado 7, que almacenamos en la variablesum_resulty lo imprimimos.
Funciones personalizadas
Podemos crear nuestras propias funciones para funciones específicas; una vez definidas, podemos usarlas como funciones integradas.
A continuación se muestra cómo personalizar funciones:
Ejemplo
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
A continuación podemos llamar a la función:
Ejemplo
for(i in 1:a) {
b <- i^2
print(b)
}
}
# Llamar a la función y pasar parámetros
new.function(6)
Al ejecutar el código anterior, el resultado es:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25 [1] 36
También podemos crear una función sin parámetros:
Ejemplo
for(i in 1:5) {
print(i^2)
}
}
# Llamar a la función, no es necesario pasar parámetros
new.function()
Al ejecutar el código anterior, el resultado es:
[1] 1 [1] 4 [1] 9 [1] 16 [1] 25
Funciones con valores de parámetros
Los parámetros de una función se pueden pasar en el orden en que se creó la función, o no en orden, pero se debe especificar el nombre del parámetro:
Ejemplo
new.function <- function(a,b,c) {
result <- a * b + c
print(result)
}
# Sin nombre de parámetro
new.function(5,3,11)
# Con nombre de parámetro
new.function(a = 11, b = 5, c = 3)
Al ejecutar el código anterior, el resultado es:
[1] 26 [1] 58
Al crear una función, también se puede especificar un valor predeterminado para los parámetros. Si no se pasa un parámetro al llamarla, se usa el valor predeterminado:
Ejemplo
new.function <- function(a = 3, b = 6) {
result <- a * b
print(result)
}
# Llamar a la función sin pasar parámetros, usará el valor predeterminado
new.function()
# Llamar a la función, pasando parámetros
new.function(9,5)
Al ejecutar el código anterior, el resultado es:
[1] 18 [1] 45Funciones de evaluación perezosa
La evaluación perezosa pospone el trabajo de cálculo hasta que el sistema necesita los resultados de esos cálculos. Si no se necesitan los resultados, no se realiza el cálculo.
De forma predeterminada, R evalúa los parámetros de forma perezosa, es decir, solo se llama cuando lo calculamos:
Ejemplo
10
}
f()
Al ejecutar el código anterior, el resultado es:
[1] 10
El código anterior se ejecuta sin errores. Aunque no pasamos el parámetro, el cuerpo de la función no usa el parámetro x, por lo que no se llama y no se produce ningún error.
Ejemplo
print(a^2)
print(a)
print(b) # Se usa b, pero no se pasa, por lo que se producirá un error
}
# Pasar un parámetro
new.function(6)
Al ejecutar el código anterior, el resultado es:
[1] 36 [1] 6 Error in print(b) : 缺少参数"b",也没有缺省值 Calls: new.function -> print 停止执行
Funciones integradas
R proporciona muchas funciones integradas útiles que podemos usar directamente sin definirlas.
Por ejemplo: seq(), mean(), max(), sum(x) y paste(...), etc.
Ejemplo
print(seq(32,44))
# Calcula el promedio de dos números
print(mean(25:82))
# Calcula la suma de todos los números del 41 al 68
print(sum(41:68))
Al ejecutar el código anterior, el resultado es:
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44 [1] 53.5 [1] 1526
sum(): Calcula la suma de un vector o una matriz.
Ejemplo
x <- c(1, 2, 3, 4, 5)
total <- sum(x)
print(total) # Salida 15
# Suma de una matriz
matrix <- matrix(1:9, nrow = 3)
total <- sum(matrix)
print(total) # Salida 45
mean(): Calcula el promedio de un vector o una matriz.
Ejemplo
x <- c(1, 2, 3, 4, 5)
avg <- mean(x)
print(avg) # Salida 3
# Promedio de una matriz
matrix <- matrix(1:9, nrow = 3)
avg <- mean(matrix)
print(avg) # Salida 5
paste():Concatena varias cadenas en una sola cadena.
Ejemplo
y <- "World"
result <- paste(x, y)
print(result) # Salida "Hello World"
length():Devuelve la longitud de un vector o el número de elementos de un objeto.
Ejemplo
length_x <- length(x)
print(length_x) # Salida 5
matrix <- matrix(1:9, nrow = 3)
length_matrix <- length(matrix)
print(length_matrix) # Salida 9
str():Muestra la estructura y un resumen del contenido de un objeto.
Ejemplo
str(x)
# Salida:
# num [1:5] 1 2 3 4 5
matrix <- matrix(1:9, nrow = 3)
str(matrix)
# Salida:
# int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
Lo anterior solo enumera una pequeña parte de los ejemplos de funciones de R. R tiene una gran cantidad de funciones integradas y funciones proporcionadas por paquetes extendidos, que pueden satisfacer diversas necesidades de procesamiento de datos, análisis estadístico, gráficos, etc. Puede consultar la documentación oficial de R para obtener una lista más detallada de funciones e instrucciones de uso.
Otras extensiones