Lo primero que tuve que afrontar fue depurar la aplicación. En RStudio es posible seleccionar secciones individuales del código y ejecutarlas. Esto ayuda mucho cuando se trabaja con R markdown, ya que no se puede establecer un punto de interrupción en el modo de depuración. Y puede seleccionar líneas y ejecutarlas en cualquier lugar.
Además, toma las variables que se llamarán en estas líneas del entorno global. Resulta que para comprobar cómo funciona esta o aquella función, basta con crear variables globales, ejecutar el código de estas funciones línea por línea y ver qué pasa. Trabajo en RStudio, donde puedes ver los valores de estas variables en la pestaña Entorno global.
Crean o cambian los valores de estas variables a través de la consola.
Pero además de las variables, hay otro problema. Cuando ejecuta comandos línea por línea, es posible que no encuentre el código de las funciones que se llaman en las líneas que ejecuta. Para hacer esto, también deben cargarse en la memoria. Para hacer esto, debe abrir el archivo con el código de esta función y hacer clic en el botón Fuente.
También hay un modo de depuración clásico en RStudio. Tiene la capacidad de establecer puntos de interrupción, con la capacidad de ejecutarse en modo de depuración y la función del navegador (), al encontrar qué R interrumpe la ejecución del código, lo que le permite depurar la aplicación. Pero en nuestro proyecto esto no se usó ampliamente debido al trabajo con la rebaja R.
Lo siguiente que encontré en R son dos tipos de proyectos: un proyecto regular (Proyecto Nuevo) y un proyecto de tipo paquete (Paquete R). Cuando me uní al equipo, había una combinación de estos 2. Parecía que había un paquete, pero no se iba a construir y lo lanzamos a través de RScrtipt. Ahora, gracias a los esfuerzos de mis colegas, tenemos un Paquete R que funciona.
Un proyecto normal (New Project) ofrece escribir archivos de script R, donde un archivo está conectado a otro a través de la función source (). Por lo tanto, cuando ejecuta el script, se ve como "un archivo muy grande", que incluye todos los archivos del proyecto. No siempre es conveniente y no es muy flexible.
A diferencia de un proyecto normal, un proyecto del tipo Paquete R nos invita a escribir una biblioteca de funciones en R, que luego se puede instalar en cualquier máquina y llamar a estas funciones dentro de nuestro archivo de script R. Realmente hay una salvedad. Las funciones solo están disponibles en el script R. Por lo tanto, antes de comenzar a trabajar con ellos, deberá crear dicho script y escribir llamadas a estas funciones en él. Se inicia en la consola usando el comando: Rscript. Para que esto funcione, debe registrar la ruta al archivo Rscript.exe en las variables de entorno. En mi máquina, esta ruta se ve así: C: \ Archivos de programa \ R \ R-4.0.3 \ bin... Al crear sus propias funciones en un proyecto del tipo Paquete, en el modo de desarrollo, debe usar la función load_all (), que extrae todos los cambios a la memoria. Si no lo usa, siempre que cambie el código en el proyecto, para que estos cambios surtan efecto, debe iniciar el proceso de instalación, que R no hace rápidamente.
Ahora sobre el proyecto R-Package: a diferencia de un proyecto simple, contiene una cierta estructura requerida y archivos especiales. Eso:
- Archivo DESCRIPTION con descripción del paquete,
- carpeta man para descripciones de funciones,
- Archivo NAMESPACE con una lista de funciones disponibles del paquete creado,
- una carpeta llamada R, que debe contener su código R
- .Rbuildignore ,
- .Rhistory,
- .RData Environment,
.Rhistory y .RData están presentes tanto en un proyecto de paquete como en un proyecto regular. También puede crear una carpeta inst para recursos adicionales y una carpeta de prueba para pruebas unitarias. Para obtener más detalles sobre cómo funciona el paquete R y por qué funciona de esta manera, puede seguir el enlace .
Al crear un proyecto de paquete R, se utiliza la utilidad roxygen2. Le ayuda a crear documentación para su paquete. La idea es que describa cada función directamente en el código, y la utilidad misma transfiera esta descripción a la carpeta man, convirtiéndola al formato requerido y agregando información sobre las funciones al archivo NAMESPACE. Lea más sobre roxygen2 aquí .
También existen paquetes útiles para configurar un proyecto, que se utilizan en casi todas las instrucciones para crearlo, al menos en todas las que encontré en Internet:
- devtools : el paquete principal, que contiene la mayoría de los comandos para trabajar con el proyecto en su forma simplificada
- usethis es un paquete auxiliar que simplifica muchas operaciones de rutina
- testthat - un paquete para escribir pruebas unitarias
- covr - paquete para verificar el código para la cobertura de la prueba unitaria
Todos los paquetes públicos con sus descripciones y documentación para el lenguaje R se almacenan en CRAN - The Comprehensive R Archive Network (https://cran.r-project.org/)
Para mayor comodidad, RStudio ya tiene herramientas integradas para verificar un nuevo proyecto creado (Verificar paquete) y probarlo (Paquete de prueba).
Parece que contó todo lo que quiso, pero es mejor ver una vez que leer cien veces. A continuación se muestra un video sobre cómo comenzar con R:
- Empezando con R en RStudio. Proyecto R o paquete R
- Creación de un proyecto de paquete R junto con pruebas unitarias y documentación
- Ejecución y depuración de código R para un proyecto de paquete R
En mi experiencia, al encontrarse en un proyecto con un nuevo lenguaje de programación, la mayoría de las veces, el mayor problema no es el lenguaje en sí, sino las herramientas para trabajar con él, las herramientas de configuración y los ajustes del entorno. Con suerte, después de leer este artículo, será mucho más fácil para muchos comenzar con R.