mtext - text in r
Organizando el código fuente R (2)
Todas,
Estoy empezando a escribir código R orientado a objetos por primera vez y anticipo tener múltiples archivos R con dependencias intermedias. Soy nuevo en R y aún no he escrito nada fuera de un solo guión masivo para probar ideas. ¿Hay recursos en línea que dan consejos sobre cómo se debe organizar el código? A falta de descripciones sobre cómo crear paquetes, no puedo encontrar tal orientación. En este punto, solo quiero organizar el código de tal forma que haga que cargar e interactuar con la colección de rutinas sea lo más sencillo posible.
Apreciar cualquier orientación que pueda proporcionar.
Chris
Esta pregunta está muy relacionada con: "¿Cómo organizar grandes programas R?"
Deberías considerar crear un paquete R Puede usar la función package.skeleton
para comenzar dado un conjunto de archivos R. También recomiendo usar roxygen
para documentar el paquete al principio, porque es mucho más difícil hacerlo después del hecho.
Lea "Escribir extensiones R" . El libro en línea "Estadísticas con R" tiene una sección sobre este tema . También eche un vistazo a Creating R Packages: A Tutorial de Friedrich Leisch. Por último, si se encuentra en Nueva York, asista a la próxima reunión del grupo NY use-R sobre "Creación de paquetes R: una introducción suave con ejemplos" .
Solo para repetir algunas sugerencias sobre buenas prácticas:
- Un paquete le permite usar la
R CMD check
que es muy útil para detectar errores; por separado, puedes ver usando el paquetecodetools
. - Un paquete también lo obliga a hacer una cantidad mínima de documentación, lo que conduce 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 reconstruir e instalar el paquete completo: encuentro que lo más fácil es hacer cambios en su archivo R relevante y luego usar el comando de source
para cargar esos cambios. Una vez que cargue su biblioteca en una sesión R, siempre será más baja en el entorno (y menor en prioridad) que .GlobalEnv, por lo que primero se usarán los cambios que haya generado o cargado directamente (use el comando de 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.
esto es para beneficio de otros que se dirigen a esta publicación en su búsqueda. Yo también enfrenté exactamente el mismo escenario y no encontré ningún recurso que lo explicara claramente. Aquí está mi intento de poner la solución en unos simples pasos:
1) Crear un nuevo directorio de proyectos
2) Crear un paquete a través de R studio (el mismo proceso que el anterior)
3) Mantenga ambos en la misma ubicación (para evitar confusiones).
4) Instalar y cargar paquetes: devtools yy roxygen2.
5) use la función load_all ().
Y has terminado.