Estrutura estatística do diretório do projeto com vários idiomas (por exemplo, R e Splus)?

9

Com base no post Como gerenciar com eficiência um projeto de análise estatística e o ProjectTemplatepacote 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 ./Re ./Splusdiretórios --- contendo cada uma os seus próprios /lib, /src, /util, /tests, e /mungediretó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 /myprojecte links simbólicos para dados em/data
  • ./cache/ - áreas de trabalho em cache (por exemplo, .RDataarquivos salvos usando save.image()no R ou .sddarquivos salvos usando data.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 é executado load.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 jogar main.ssc, clean.sscetc. 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.Ra serem usados ​​no relatório final
  • ./report/ - .texarquivos e links simbólicos para arquivos em./figures
  • ./presentation/ - .texarquivos para apresentações (geralmente a Beamerclasse)
  • ./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
lowndrul
fonte
1
isso definitivamente obter mais respostas em stackoverflow.com
mpiktas 12/03
1
@mpiktas, mas isso é muito importante para estatísticos aplicados.
Karl

Respostas:

2

Definitivamente, eu não chamaria isso de "melhores práticas", mas meu projeto típico tem diretórios

R(que geralmente contém prepData.R, analysis.R, func.R, e figs.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 Rdiretório geralmente contém subdiretórios Figse Rcache.

Particularmente importante: controle de versão ! Eu gosto de idiota .

Karl
fonte