Partiendo de la publicación Cómo gestionar eficientemente un proyecto de análisis estadístico y el ProjectTemplate
paquete en R ...
P: ¿Cómo se construye la estructura de directorios de su proyecto estadístico cuando varios idiomas tienen una gran importancia (por ejemplo, R AND Splus)?
La mayoría de las discusiones sobre este tema se han limitado a proyectos que utilizan principalmente un idioma. Me preocupa cómo minimizar el descuido, la confusión y la rotura cuando utilizo varios idiomas.
He incluido a continuación mi estructura de proyecto actual y métodos para hacer cosas. Una alternativa podría ser la de código separado por lo que tengo ./R
y ./Splus
directorios --- que contienen cada uno sus propios /lib
, /src
, /util
, /tests
, y /munge
directorios.
P: ¿Qué enfoque estaría más cerca de las "mejores prácticas" (si existe)?
- / data : datos compartidos entre proyectos
- / bibliotecas : scripts compartidos entre proyectos
- / projects / myproject : mi directorio de trabajo. Actualmente, si uso varios idiomas, comparten esta ubicación como su directorio de trabajo.
- ./data/ - datos específicos
/myproject
y enlaces simbólicos a datos en/data
- ./cache/ - espacios de trabajo en caché (p. ej.,
.RData
archivos guardados consave.image()
R o.sdd
archivos guardados condata.dump()
Splus) - ./lib/ - archivos principales del proyecto. Lo mismo en todos los proyectos. Un proyecto de I se llevará a cabo a través de
source("./lib/main.R")
la cual a su vez ejecutaload.R
,clean.R
,test.R
,analyze.R
,.report.R
. En la actualidad, si se utilizan varios idiomas, por ejemplo, Splus además de R, voy a tirarmain.ssc
,clean.ssc
etc. en este directorio también. Aunque no estoy seguro de que me guste esto. - ./src/ - funciones específicas del proyecto. Recopiló una función por archivo.
- ./util/ - funciones generales que eventualmente se empaquetarán. Recopiló una función por archivo.
- ./tests/ : archivos para ejecutar casos de prueba. Usado por
./lib/test.R
- ./munge/ - archivos para limpiar datos. Usado por
./lib/clean.R
- ./figures/ - tablas y resultados de figuras
./lib/report.R
que se utilizarán en el informe final - ./report/ -
.tex
archivos y enlaces simbólicos a archivos en./figures
- ./presentation/ -
.tex
archivos para presentaciones (generalmente laBeamer
clase) - ./temp/ - ubicación para scripts temporales
- ./README
- ./QUE HACER
- ./.RData : para almacenar espacios de trabajo de proyectos R
- ./.Data/ - para almacenar espacios de trabajo del proyecto S
fuente
Respuestas:
Definitivamente no lo llamaría "mejores prácticas", pero mi proyecto típico tiene directorios
R
(que contiene en generalprepData.R
,analysis.R
,func.R
, yfigs.R
, aunque podría ser éstos podrían ser cada uno dividido en varios archivos y podría utilizar Sweave o asciidoc )Perl
(principalmente para analizar / convertir archivos de datos)RawData
(todos los archivos de datos originales)Data
(todos los archivos procesados)Notes
(generalmente notas del colaborador)El
R
directorio a menudo contiene subdirectoriosFigs
yRcache
.Particularmente importante: control de versiones ! Me gusta git .
fuente