Estructura estadística del directorio del proyecto con múltiples idiomas (p. Ej., R y Splus)

9

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 con save.image()R o .sddarchivos guardados con data.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 ejecuta load.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 tirar main.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 la Beamerclase)
  • ./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
Lowndrul
fuente
1
esto definitivamente tener más respuestas, en stackoverflow.com
mpiktas
1
@mpiktas, pero esto es muy importante para los estadísticos aplicados.
Karl

Respuestas:

2

Definitivamente no lo llamaría "mejores prácticas", pero mi proyecto típico tiene directorios

R(que contiene en general prepData.R, analysis.R, func.R, y figs.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 subdirectorios Figsy Rcache.

Particularmente importante: control de versiones ! Me gusta git .

Karl
fuente