Structure de répertoire de projet statistique avec plusieurs langues (par exemple, R et Splus)?

9

S'appuyer sur le post Comment gérer efficacement un projet d'analyse statistique et le ProjectTemplatepackage dans R ...

Q: Comment créez-vous la structure de répertoires de votre projet statistique lorsque plusieurs langues sont fortement utilisées (par exemple, R AND Splus)?

La plupart des discussions sur ce sujet se sont limitées à des projets qui utilisent principalement une seule langue. Je souhaite savoir comment minimiser la négligence, la confusion et les bris lors de l'utilisation de plusieurs langues.

J'ai inclus ci-dessous ma structure de projet actuelle et les méthodes pour faire les choses. Une alternative pourrait être de code distinct pour que j'ai ./Ret ./Splusrépertoires --- contenant chacun leurs propres /lib, /src, /util, /testset /mungerépertoires.

Q: Quelle approche serait la plus proche des «meilleures pratiques» (le cas échéant)?

  • / data - données partagées entre les projets
  • / bibliothèques - scripts partagés entre les projets
  • / projects / myproject - mon répertoire de travail. Actuellement, si j'utilise plusieurs langues, ils partagent cet emplacement comme répertoire de travail.
  • ./data/ - données spécifiques /myprojectet liens symboliques vers les données dans/data
  • ./cache/ - espaces de travail mis en cache (par exemple, .RDatafichiers enregistrés à l'aide save.image()de R ou .sddfichiers enregistrés à l'aide data.dump()de Splus)
  • ./lib/ - fichiers principaux du projet. Même chose pour tous les projets. Un projet R sera exécuté par l' intermédiaire source("./lib/main.R")qui fonctionne à son tour load.R, clean.R, test.R, analyze.R, .report.R. À l' heure actuelle, si plusieurs langues sont utilisées, par exemple, Splus en plus de R, je vais jeter main.ssc, clean.sscetc. dans ce répertoire. Pas sûr que j'aime ça.
  • ./src/ - fonctions spécifiques au projet. Collecte d'une fonction par fichier.
  • ./util/ - les fonctions générales seront éventuellement regroupées. Collecte d'une fonction par fichier.
  • ./tests/ - fichiers pour l'exécution des cas de test. Utilisé par./lib/test.R
  • ./munge/ - fichiers pour nettoyer les données. Utilisé par./lib/clean.R
  • ./figures/ - tableaux et chiffres de sortie ./lib/report.Rà utiliser dans le rapport final
  • ./report/ - .texfichiers et liens symboliques vers des fichiers dans./figures
  • ./présentation/ - .texfichiers pour présentations (généralement la Beamerclasse)
  • ./temp/ - emplacement pour les scripts temporaires
  • ./README
  • ./FAIRE
  • ./.RData - pour stocker les espaces de travail du projet R
  • ./.Data/ - pour stocker les espaces de travail du projet S
lowndrul
la source
1
cela obtiendra certainement plus de réponses sur stackoverflow.com
mpiktas
1
@mpiktas, mais c'est très important pour les statisticiens appliqués.
Karl

Réponses:

2

Je ne l'appellerais certainement pas "meilleures pratiques", mais mon projet typique a des répertoires

R(qui contient généralement prepData.R, analysis.R, func.Ret figs.R, bien que ceux - ci pourraient être pourraient être chacun divisé en plusieurs fichiers et pourrait utiliser Sweave ou asciidoc )

Perl (principalement pour analyser / convertir des fichiers de données)

RawData (tous les fichiers de données d'origine)

Data (tous les fichiers traités)

Notes (généralement des notes du collaborateur)

Le Rrépertoire contient souvent des sous Figs- répertoires et Rcache.

Particulièrement important: le contrôle de version ! J'aime git .

Karl
la source