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:
Todo lo que existe es un objeto
Todo lo que se sucede es una llamada a una función"
Toda función tiene 3 tipos de elementos: 1. Argumentos o parámetros.
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
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
}
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"
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"
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"