S'appuyer sur le post Comment gérer efficacement un projet d'analyse statistique et le ProjectTemplate
package 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 ./R
et ./Splus
répertoires --- contenant chacun leurs propres /lib
, /src
, /util
, /tests
et /munge
ré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
/myproject
et liens symboliques vers les données dans/data
- ./cache/ - espaces de travail mis en cache (par exemple,
.RData
fichiers enregistrés à l'aidesave.image()
de R ou.sdd
fichiers enregistrés à l'aidedata.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 tourload.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 jetermain.ssc
,clean.ssc
etc. 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/ -
.tex
fichiers et liens symboliques vers des fichiers dans./figures
- ./présentation/ -
.tex
fichiers pour présentations (généralement laBeamer
classe) - ./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
la source
Réponses:
Je ne l'appellerais certainement pas "meilleures pratiques", mais mon projet typique a des répertoires
R
(qui contient généralementprepData.R
,analysis.R
,func.R
etfigs.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
R
répertoire contient souvent des sousFigs
- répertoires etRcache
.Particulièrement important: le contrôle de version ! J'aime git .
la source