Esta pregunta está muy relacionada con: "How to organize large R programs?"
Usted debería considerar la creación de un paquete de R. Puede usar la función package.skeleton
para comenzar dado un conjunto de archivos R. También recomiendo utilizar roxygen
para documentar el paquete al principio, porque es mucho más difícil hacerlo después del hecho.
Lea "Writing R Extensions". El libro en línea "Estadísticas con R" tiene a section on this subject. También echa un vistazo a Creating R Packages: A Tutorial por Friedrich Leisch. Por último, si está en Nueva York, venga a la próxima reunión del grupo NY use-R en "Authoring R Packages: a gentle introduction with examples".
Sólo hacer un refrito de algunas sugerencias sobre buenas prácticas:
- Un paquete le permite utilizar
R CMD check
que es muy útil en la detección de errores; por separado puede mirar usando el paquete codetools
.
- Un paquete también te obliga a hacer una cantidad mínima de documentación, lo que lleva a mejores prácticas a largo plazo.
- También debería considerar realizar pruebas unitarias (por ejemplo, con RUnit) si desea que su código sea robusto/mantenible.
- Debería considerar usar una guía de estilo (por ejemplo, Google Style Guide).
- Use un sistema de control de versiones desde el principio, y si va a hacer que su código sea de código abierto, entonces considere usar github o r-forge.
Editar:
En cuanto a ¿cómo hacer cambios incrementales sin volver a generar e instalar el paquete completo: me parece la más sencilla de hacerlo es hacer cambios en el archivo de R pertinente y luego utilizar el comando source
para cargar esos cambios Una vez que cargue su biblioteca en una sesión R, siempre será menor en el entorno (y con menor prioridad) que .GlobalEnv, por lo que primero se usarán los cambios que origine o cargue directamente (use el comando search
para ver esta). De esta forma, puede tener su paquete subyacente y está sobrescribiendo los cambios a medida que los prueba en el entorno.
Alternativamente, puede usar un IDE como StatET o ESS. Hacen que cargar líneas individuales o funciones de un paquete R sea muy fácil. StatET está especialmente bien diseñado para administrar paquetes en una estructura tipo directorio.
Posible duplicado: http://stackoverflow.com/questions/1266279/how-to-organize-large-r-programs – Shane