Saya berencana untuk mulai menulis paket R.
Saya pikir akan lebih baik untuk mempelajari kode sumber paket yang ada untuk mempelajari konvensi pembangunan paket.
Kriteria saya untuk paket yang baik untuk dipelajari:
- Gagasan statistik / teknis yang sederhana : Intinya adalah mempelajari mekanisme pembuatan paket. Memahami paket seharusnya tidak membutuhkan pengetahuan khusus yang sangat spesifik tentang topik sebenarnya dari paket tersebut.
- Gaya pengkodean sederhana dan konvensional : Saya mencari sesuatu yang sedikit lebih dari
Hello World
tetapi tidak jauh lebih banyak. Trik dan peretasan idiot akan mengganggu ketika pertama kali mempelajari paket R. - Gaya pengkodean yang baik : Kode ini ditulis dengan baik. Ini mengungkapkan baik pemahaman tentang pengkodean yang baik, secara umum, dan kesadaran akan konvensi pengkodean dalam R.
Pertanyaan:
- Paket mana yang bagus untuk dipelajari?
- Mengapa kode sumber paket yang disarankan baik untuk dipelajari relatif terhadap kriteria yang disebutkan di atas atau kriteria lain yang mungkin relevan?
Pembaruan (13/12/2010) Mengikuti komentar Dirk, saya ingin menjelaskan bahwa banyak paket akan baik untuk dipelajari terlebih dahulu. Saya juga setuju bahwa paket akan menyediakan model untuk hal-hal yang berbeda (mis. Sketsa, kelas S3, kelas S4, pengujian unit, Roxygen, dll.). Meskipun demikian, akan menarik untuk membaca saran konkret tentang paket yang baik untuk memulai dan alasan mengapa mereka akan menjadi paket yang baik untuk memulai.
Saya juga memperbarui pertanyaan di atas untuk merujuk ke "paket" daripada "paket".
Jawaban:
Saya sarankan melihat paket kebun binatang karena alasan berikut:
useDynLib
,import
,export
, danS3method
;RUnit
;.Call
antarmuka;Itu tidak menggunakan roxygen, yang sangat berguna, tetapi 7 dari 8 tidak buruk. ;-)
Untuk menanggapi kriteria Anda:
zoo
adalah kelas mirip matriks yang dipesan oleh sesuatu . Tidak diperlukan pengetahuan khusus domain.zoo
memang tampaknya memiliki beberapa konvensi pengkodean istimewa, tetapi tidak ada yang over-the-top yang mencegah pemahaman kode.zoo
bertujuan untuk menjadi konsisten dengan R sebanyak mungkin.sumber
Saya tidak menganggap diri saya sebagai pengembang paket R yang mapan, tetapi baru-baru ini menjalani proses penulisan dan pemeliharaan paket untuk lingkungan kerja saya.
Saya sebelumnya telah menulis / memelihara / memperbarui satu set skrip yang akan saya sampaikan dari proyek ke proyek melalui
source()
fungsi. Hasil akhir dari ini adalah bahwa saya akan berakhir dengan skrip yang sebagian besar nongkrong di berbagai tempat di drive jaringan kami. Tidak pernah jelas di mana set skrip yang paling mutakhir berada. Sejak itu saya telah bermigrasi untuk menulis / memelihara paket menggunakan roxygen. Ini secara drastis menyederhanakan hidup saya dan membuatnya lebih mudah untuk berbagi pekerjaan saya dengan kolega.Berdasarkan kriteria Anda di atas, saya merekomendasikan rekomendasi untuk meninjau paket yang telah ditulis Hadley. Secara khusus, saya pikir membaca wiki devtools akan sangat membantu. Kode Hadley didokumentasikan dengan baik dan beberapa paketnya menggunakan roxygen. Saya pikir menulis dan memelihara satu dokumen untuk fungsi R dan dokumentasi R jauh lebih mudah daripada memisahkannya di dua lokasi (file .R dan .RD).
Paket Hadley juga menyajikan beberapa konsep yang cukup mendasar dan relatif mudah untuk diuraikan (imho) jika Anda mencari petunjuk tentang ide-ide aspek teknis. Saya menemukan diri saya menggali melalui kode sumber plyr ketika saya sedang mencari pointer pada dokumentasi roxygen atau tugas mendasar lainnya.
sumber
Mengapa tidak mengambil pendekatan pengambilan sampel acak yang digerakkan secara empiris? Pilih saja beberapa dan lihat mana yang cocok untuk Anda.
Selain bercanda, lihat saja beberapa paket yang Anda gunakan sendiri dan sudah Anda kenal. Mengunduhnya mudah, atau jika Anda mau, Anda juga dapat melihatnya melalui antarmuka web di R-Forge, RForge, atau Github.
Kemungkinan besar Anda akan mendapatkan paket berbeda untuk berbagai ide. Beberapa mungkin membantu Anda dengan cara mereka mengintegrasikan, katakanlah, sketsa. Beberapa mungkin membantu dengan kode yang dikompilasi. Atau tes unit. Atau Roxygen. Ada sekitar 2.600 dari mereka, jadi mengapa terobsesi dengan satu yang terbaik?
sumber
Saran lain mungkin untuk melihat paket milik Anda akan tergantung pada atau berinteraksi dengan, terutama jika ini menerapkan beberapa item yang disebutkan Joshua Ulrich atau telah ditulis oleh penulis terkenal. Mungkin bermanfaat untuk mempelajari bagaimana hal-hal dilakukan di bidang Anda, untuk memastikan kompatibilitas. Seringkali orang akan berpikir tentang masalah tertentu dan membaca solusi mereka akan sangat membantu.
sumber
Saya akan merekomendasikan paket pembentukan kembali hadley. Anda dapat menemukan sumbernya di https://github.com/hadley/reshape
sumber