Crear funciones en r

Crear funciones en r

Argumentos de las funciones de r

Una de las mejores maneras de mejorar tu alcance como científico de datos es escribir funciones. Las funciones le permiten automatizar tareas comunes de una manera más potente y general que copiar y pegar. Escribir una función tiene tres grandes ventajas sobre el uso de copiar y pegar:
Escribir buenas funciones es un viaje de por vida. Incluso después de usar R durante muchos años sigo aprendiendo nuevas técnicas y mejores formas de abordar viejos problemas. El objetivo de este capítulo no es enseñarle todos los detalles esotéricos de las funciones, sino ponerle en marcha con algunos consejos pragmáticos que puede aplicar inmediatamente.
Además de consejos prácticos para escribir funciones, este capítulo también le ofrece algunas sugerencias sobre cómo dar estilo a su código. Un buen estilo de código es como la puntuación correcta. Puedes manejarte sin él, pero seguro que facilita la lectura. Al igual que con los estilos de puntuación, hay muchas variaciones posibles. Aquí presentamos el estilo que utilizamos en nuestro código, pero lo más importante es ser coherente.
Deberías considerar escribir una función siempre que hayas copiado y pegado un bloque de código más de dos veces (es decir, ahora tienes tres copias del mismo código). Por ejemplo, echa un vistazo a este código. ¿Qué hace?

Llamar a una función en r

Si está leyendo este libro, probablemente ya ha creado muchas funciones en R y sabe cómo utilizarlas para reducir la duplicación en su código. En este capítulo, aprenderá a convertir ese conocimiento informal y práctico en una comprensión más rigurosa y teórica. Y aunque verá algunos trucos y técnicas interesantes a lo largo del camino, tenga en cuenta que lo que aprenderá aquí será importante para entender los temas más avanzados que se tratan más adelante en el libro.
Mientras que los formales y el cuerpo se especifican explícitamente cuando creas una función, el entorno se especifica implícitamente, basándose en el lugar donde has definido la función. El entorno de la función siempre existe, pero sólo se imprime cuando la función no está definida en el entorno global.
Dibujaré las funciones como en el siguiente diagrama. El punto negro de la izquierda es el entorno. Los dos bloques de la derecha son los argumentos de la función. No dibujaré el cuerpo, porque suele ser grande, y no ayuda a entender la forma de la función.

Hoja de trucos de funciones r

Las funciones de la vida real suelen ser más grandes que las que se muestran aquí -típicamente de media docena a unas pocas docenas de líneas- pero nunca deberían ser mucho más largas que eso, o la siguiente persona que las lea no podrá entender lo que está pasando.
Sin embargo, hay otras dos tareas importantes a tener en cuenta: 1) deberíamos asegurarnos de que nuestra función puede proporcionar errores informativos cuando sea necesario, y 2) deberíamos escribir algo de documentación para nuestra función para recordar más tarde para qué sirve y cómo usarla.
Es probable que este no sea el comportamiento que deseamos, y es causado por la función de media que devuelve NA cuando no se proporciona el na.rm=TRUE. Podemos desear no considerar los valores NA en nuestra función central. Podemos proporcionar el argumento na.rm=TRUE y resolver este problema.
Por ejemplo, la función de centrado sólo funciona con vectores numéricos. Reconocer esto y añadir advertencias y errores proporciona información al usuario y se asegura de que la salida de la función es la que el usuario quería.
Esto es útil: si normalmente queremos que una función trabaje de una manera, pero ocasionalmente necesitamos que haga otra cosa, podemos permitir que la gente pase un argumento cuando lo necesite pero proporcionar un valor por defecto para facilitar el caso normal.

Funciones anidadas en r

Compara esto con la función elipse, que dibuja un círculo. La función elipse no da ningún valor, por lo que no tendría sentido tratar de almacenarlo en una variable. Como la función elipse no devuelve nada, su tipo de retorno es void.
Es importante tener en cuenta los tipos de retorno cuando escribas tus propias funciones. La mayoría de las funciones que vas a escribir harán algo en lugar de darte un valor, así que verás muchos tipos de retorno void.
Esta función tiene un tipo de retorno void (lo que significa que hace algo en lugar de dar un valor), y toma tres parámetros: circleX, circleY, y circleDiameter. El cuerpo de la función cambia el color de relleno a rojo y luego utiliza los parámetros para dibujar un círculo.
Esto le permite tratar una tarea que toma múltiples pasos (como cambiar el color de relleno a rojo y dibujar un círculo) como un solo paso. Esto será muy útil a medida que su código se complica.
Ambas funciones tienen un tipo de retorno void, lo que significa que hacen algo en lugar de devolver un valor. La función setup se encarga de decirle a Processing qué tamaño debe tener la ventana y de establecer el color de fondo, y la función draw dibuja la flor.

Acerca del autor

admin

Ver todos los artículos