Com base no post Como gerenciar com eficiência um projeto de análise estatística e o ProjectTemplate
pacote em R ...
P: Como você constrói sua estrutura de diretórios estatísticos de projetos quando vários idiomas se destacam (por exemplo, R AND Splus)?
A maioria das discussões sobre este tópico foi limitada a projetos que usam principalmente um idioma. Estou preocupado em como minimizar a negligência, a confusão e a quebra ao usar vários idiomas.
Incluí abaixo minha estrutura de projeto atual e métodos para fazer as coisas. Uma alternativa poderia ser a de código separado para que eu tenha ./R
e ./Splus
diretórios --- contendo cada uma os seus próprios /lib
, /src
, /util
, /tests
, e /munge
diretórios.
P: Qual abordagem estaria mais próxima das "melhores práticas" (se houver alguma)?
- / data - dados compartilhados entre projetos
- / libraries - scripts compartilhados entre projetos
- / projects / myproject - meu diretório de trabalho. Atualmente, se eu usar vários idiomas, eles compartilham esse local como seu diretório de trabalho.
- ./data/ - dados específicos
/myproject
e links simbólicos para dados em/data
- ./cache/ - áreas de trabalho em cache (por exemplo,
.RData
arquivos salvos usandosave.image()
no R ou.sdd
arquivos salvos usandodata.dump()
no Splus) - ./lib/ - arquivos principais do projeto. O mesmo em todos os projetos. Um projeto de R será executado via
source("./lib/main.R")
que por sua vez é executadoload.R
,clean.R
,test.R
,analyze.R
,.report.R
. Atualmente, se vários idiomas estão sendo usados, por exemplo, Splus além de R, eu vou jogarmain.ssc
,clean.ssc
etc. neste diretório também. Não tenho certeza se eu gosto disso. - ./src/ - funções específicas do projeto. Coletou uma função por arquivo.
- ./util/ - funções gerais eventualmente a serem empacotadas. Coletou uma função por arquivo.
- ./tests/ - arquivos para executar casos de teste. Usado por
./lib/test.R
- ./munge/ - arquivos para limpeza de dados. Usado por
./lib/clean.R
- ./figures/ - tabelas e resultados de figuras
./lib/report.R
a serem usados no relatório final - ./report/ -
.tex
arquivos e links simbólicos para arquivos em./figures
- ./presentation/ -
.tex
arquivos para apresentações (geralmente aBeamer
classe) - ./temp/ - local para scripts temporários
- ./LEIA-ME
- ./FAÇAM
- ./.RData - para armazenar áreas de trabalho do projeto R
- ./.Data/ - para armazenar áreas de trabalho do projeto S
fonte
Respostas:
Definitivamente, eu não chamaria isso de "melhores práticas", mas meu projeto típico tem diretórios
R
(que geralmente contémprepData.R
,analysis.R
,func.R
, efigs.R
, embora poderia ser estes poderiam ser cada dividida em vários arquivos e poderia usar Sweave ou asciidoc )Perl
(principalmente para analisar / converter arquivos de dados)RawData
(todos os arquivos de dados originais)Data
(todos os arquivos processados)Notes
(geralmente notas do colaborador)O
R
diretório geralmente contém subdiretóriosFigs
eRcache
.Particularmente importante: controle de versão ! Eu gosto de idiota .
fonte