Partiendo de la publicación Cómo gestionar eficientemente un proyecto de análisis estadístico y el ProjectTemplatepaquete 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 ./Ry ./Splusdirectorios --- que contienen cada uno sus propios /lib, /src, /util, /tests, y /mungedirectorios.
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
/myprojecty enlaces simbólicos a datos en/data - ./cache/ - espacios de trabajo en caché (p. ej.,
.RDataarchivos guardados consave.image()R o.sddarchivos 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.sscetc. 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.Rque se utilizarán en el informe final - ./report/ -
.texarchivos y enlaces simbólicos a archivos en./figures - ./presentation/ -
.texarchivos para presentaciones (generalmente laBeamerclase) - ./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
Rdirectorio a menudo contiene subdirectoriosFigsyRcache.Particularmente importante: control de versiones ! Me gusta git .
fuente