En este capítulo abordaremos el diseño de funciones en R. El poder crear nuestras propias funciones será fundamental para nuestros estudios futuros, para ello, tenemos a mano el objeto denominado function que constituyen nuevas funciones de R, que se puede utilizar a su vez en expresiones posteriores.
La sintaxis es simple y se asemeja a lenguajes de programación cómo el C:
NombreFuncion <- function (Argumento1,..., ArgumentoN)
{
expresión 1
...
expresión N
}
Los argumentos de las funciones se pueden dar por nombre o posición, por ejemplo, vamos a diseñar una función que nos devuelva la media de dos número.
Parámetros a tener en cuenta a la hora de confeccionar una función:
· Nombre de la función: Media2
· a ≡ Primer número.
· b ≡ Segundo número.
Nuestra función que calcula la media de dos números dados tendrá la siguiente forma en R:
> Media2 <- function(a,b){
+ Resultado <- (a+b)/2
+ Resultado
+ }
Dónde hemos dicho a R que el objeto Media2 es una función que recibirá dos parámetros de nombres a y b respectivamente, y en su cuerpo, se ha definido la expresión a realizar, en este caso, se ha declarado una variable llamada Resultado que contendrá la operación de sumar ambos parámetros y dividirlos por 2, para posteriormente, mostrarlo por pantalla.
Pasamos a probarla simplemente dando valores, por posición, a los argumentos:
> Media2(4,2)
[1] 3
También podemos dar los valores de los argumentos por sus nombres, ésta forma es útil ya que no se tiene por qué mantener el orden de los parámetros definidos:
> Media2(b=7,a=2)
[1] 4.5
Como podemos comprobar, la creación de funciones en R es bastante simple y por ende, una gran herramienta que nos permitirá diseñar funciones a medida para problemas puntuales, usando el potencial de R.
Consideraciones a tener en cuenta al manejar funciones:
- Podemos crear una función que tenga uno o varios argumentos fijos, pero hay que tener en cuenta que los argumentos con valores fijos o por defecto, deben ser declarados después de los argumentos variables, por ejemplo, un caso erróneo de declaración de argumentos en la función:
+ (a+b)/2
+ }
R, nos permite definir la función pero nos advertirá de un error si la usamos con el argumento variable sin dar su nombre:
> Media2(1)
Error en Media2(1) : elemento 2 esta vacio;
la parte de la lista de argumentos '+' ha sido evaluada:
(a, b)
Para que no exista error y podamos usar la función definida, debemos especificar el nombre de la variable a pasarle el valor:
> Media2(b=1)
[1] 1.5
Los valores que hemos definido como constantes, se pueden sobrescribir, simplemente debemos especificar el nombre de la variable y darle el valor deseado:
> Media2(a=4,b=1)
[1] 2.5
- Un parámetro importante que podemos emplear en las funciones es poder pasar argumentos a otra función, ésto se realiza mediante el comando: ...
> Dibujar <- function(x, y, label = "Aqueronte", ...){
+ plot(x, y, xlab = label, ...)}
La función Dibujar que hemos declarado tomará los datos del eje X e Y que le demos y los pasará a la función plot con la etiqueta en el eje X que ponga Aqueronte.
> Dibujar(1:5,1:5)
El resultado es el siguiente:
Vemos que hemos conseguido exactamente lo que queríamos.
- Cuando definimos funciones, una manera práctica, sencilla y rápida de ver que argumentos acepta, se emplea la función args, por ejemplo, para ver el tipo de argumentos a nuestra función:
function (x, y, label = "Aqueronte", ...)
NULL
Nos informa que tiene tres argumentos de los cuales dos son variables: x e y, y el tercero es una constante.
El hecho de que R nos permita diseñar y crear funciones hace que, el lenguaje gana considerablemente en potencia, comodidad y elegancia.
0 comentarios:
Publicar un comentario