Struktur direktori proyek statistik dengan berbagai bahasa (misalnya, R dan Splus)?

9

Membangun posting Bagaimana mengelola proyek analisis statistik dan ProjectTemplatepaket dalam R ...

T: Bagaimana Anda membangun struktur direktori proyek statistik Anda ketika banyak bahasa banyak fitur (misalnya, R DAN Splus)?

Sebagian besar diskusi tentang topik ini terbatas pada proyek yang terutama menggunakan satu bahasa. Saya prihatin dengan cara meminimalkan kecerobohan, kebingungan, dan kerusakan, saat menggunakan banyak bahasa.

Saya telah memasukkan di bawah ini struktur proyek saya dan metode untuk melakukan sesuatu. Sebuah alternatif mungkin untuk kode yang terpisah sehingga saya memiliki ./Rdan ./Splusdirektori --- masing-masing berisi sendiri /lib, /src, /util, /tests, dan /mungedirektori.

T: Pendekatan mana yang paling dekat dengan "praktik terbaik" (jika ada)?

  • / data - data yang dibagikan di seluruh proyek
  • / perpustakaan - skrip dibagikan di seluruh proyek
  • / projects / myproject - direktori kerja saya. Saat ini, jika saya menggunakan beberapa bahasa, mereka membagikan lokasi ini sebagai direktori kerja mereka.
  • ./data/ - data khusus untuk /myprojectdan symlink ke data dalam/data
  • ./cache/ - ruang kerja yang di-cache (mis., .RDatafile disimpan menggunakan save.image()dalam R atau .sddfile disimpan menggunakan data.dump()di Splus)
  • ./lib/ - file proyek utama. Sama di semua proyek. Sebuah proyek R akan dijalankan melalui source("./lib/main.R")yang pada gilirannya berjalan load.R, clean.R, test.R, analyze.R, .report.R. Saat ini, jika beberapa bahasa yang digunakan, misalnya, splus selain R, aku akan melemparkan main.ssc, clean.ssc, dll ke direktori ini juga. Tidak yakin saya suka ini.
  • ./src/ - fungsi spesifik proyek. Mengumpulkan satu fungsi per file.
  • ./util/ - fungsi umum pada akhirnya akan dikemas. Mengumpulkan satu fungsi per file.
  • ./tests/ - file untuk menjalankan test case. Digunakan oleh./lib/test.R
  • ./munge/ - file untuk membersihkan data. Digunakan oleh./lib/clean.R
  • ./figures/ - tabel dan gambar output ./lib/report.Runtuk digunakan dalam laporan akhir
  • ./report/ - .texfile dan symlink ke file dalam./figures
  • ./presentation/ - .texfile untuk presentasi (biasanya Beamerkelas)
  • ./temp/ - lokasi untuk skrip sementara
  • ./BACA AKU
  • ./MELAKUKAN
  • ./.RData - untuk menyimpan ruang kerja proyek R
  • ./.Data/ - untuk menyimpan ruang kerja proyek S
lowndrul
sumber
1
ini pasti mendapatkan lebih banyak jawaban di stackoverflow.com
mpiktas
1
@mpiktas, tetapi ini sangat penting bagi ahli statistik terapan.
Karl

Jawaban:

2

Saya pasti tidak akan menyebutnya "praktik terbaik", tetapi proyek khas saya memiliki direktori

R(yang umumnya mengandung prepData.R, analysis.R, func.R, dan figs.R, meskipun bisa ini bisa setiap terpecah menjadi banyak file dan bisa menggunakan Sweave atau asciidoc )

Perl (kebanyakan untuk parsing / mengonversi file data)

RawData (semua file data asli)

Data (semua file yang diproses)

Notes (umumnya catatan dari kolaborator)

The Rdirektori sering mengandung subdirektori Figsdan Rcache.

Sangat penting: kontrol versi ! Saya suka git .

Karl
sumber