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 clavereturn。

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

# Definir una función de suma
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

# Definir una función para calcular el cuadrado de una serie.
new.function <- function(a) {
   for(i in 1:a) {
      b <- i^2
      print(b)
   }
}

A continuación podemos llamar a la función:

Ejemplo

new.function <- function(a) {
    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

new.function <- function() {
    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

# Crear una función
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

# Crear una función con parámetros predeterminados
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] 45

Funciones 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

f <- function(x) {
  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

new.function <- function(a, b) {
   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

# Muestra todos los números del 32 al 44
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

# Suma de un vector
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

# Promedio de un vector
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

x <- "Hello"
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

x <- c(1, 2, 3, 4, 5)
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

x <- c(1, 2, 3, 4, 5)
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