Las funciones representan una actividad importante en todo lenguaje de programación. Permite sistematizar un código que será ejecutado en una o más ocaciones con distintos argumentos o parámetros. Dentro de las múltiples ventajas que tiene, el que sobresale es que es un método fácil de entender para lo que pretende desarrollar el programador, minimizando su espacio de trabajo, permitiendo no caer en el error de copiar y pegar muchas líneas de código.

R permite crear funciones propias y poder ser compartidas. El lenguaje R también posee funciones existentes y es que todo lo que queremos desarrollar en R se realiza mediante funciones y objetos, como ya lo dice una frase célebre de John Chambers:

"Para comprender los cálculos en R, dos puntos son útiles:

Estructura de una función en R

Toda función tiene 3 tipos de elementos: 1. Argumentos o parámetros.

  1. Cuerpo que son las operaciones que se ejecutarán Netamente es la programación o el desarrollo de la función. Va entre corchetes “{}” y se ejecutan cada vez que se llama a la función

  2. Resultado o el valor de salida, es lo que se desea que devuelva la función. Es la última línea del código.

La forma es como sigue

  myfunction<- function(argumento_1, argumento_2, ..., argumento_n) {
  Cuerpo 
  Resultado
  }

Ejemplo 01: Función simple, con paste

Se pretende desarrollar una función que calcule la suma de 2 elementos y que retorne la frase: “La suma es igual a (seguida del resultado)”

funcionsuma<- function(x,y) { #Los argumentos son x e y
 suma= x+y # Este es el cuerpo de la función
  print(paste0("La suma es igual a ", suma)) # Este es el Resultado, el retorno
}

funcionsuma(x=10, y=20) # Se está especificando los argumentos1 y argumentos2; sin embargo, no es necesario.
## [1] "La suma es igual a 30"
funcionsuma(10, 20)
## [1] "La suma es igual a 30"

Ejemplo 02: Función simple, con paste y condicional

Se pretende desarrollar una función que calcule la resta de 2 elementos, bajo la condición que el elemento 1 sea mayor que el elemento 2. En caso no lo sea, que la función devuelva la frase: “Valores incorrectos, por favor revisar”. Si los valores son de acuerdo a lo especificado, que devuelva la frase: “La resta es igual a (seguida del resultado)”

funcionresta<- function(x,y) { #Los argumentos son x e y
 
  
  resta= ifelse(x>y, paste0("La resta es igual a ", x-y),
                "Valores incorrectos, por favor revisar")# Este es el cuerpo de la función
  return(resta) # Este es el Resultado, el retorno
}

funcionresta(20,35)
## [1] "Valores incorrectos, por favor revisar"
funcionresta(20,5)
## [1] "La resta es igual a 15"

Ejemplo 03: Función que me elimine todas las columnas que contengan NA (valores nulos.)

Se desarrolla una función que reconozca las o variables que contengan al menos un valor nulo y las elimine por completo.

data1<- data.frame(var1= c(1:19),
                   var2 = ceiling(runif(19,100000,999999)),
                   var3 = paste0("P",c(1:19)),
                   var5= c(NA,ceiling(runif(18,100000,999999))),
                   var6= rep(0,19),
                   var4 = 1000+(1:19)*10
                   )
colnames(data1)
## [1] "var1" "var2" "var3" "var5" "var6" "var4"
delete.na <- function(df, n=0) {

df2<- df[,(colSums(is.na(df))) <= n ]

return(df2)


  }

data2<- delete.na(data1)

colnames(data2)
## [1] "var1" "var2" "var3" "var6" "var4"