Pemicu pribadi saya untuk pengemasan adalah:
- Saya menemukan saya lagi menggunakan beberapa kode yang pernah saya tulis untuk proyek analisis data lain.
- Saya pikir saya akan membutuhkan metode yang baru saja saya tulis lagi.
Seorang kolega meminta saya kode. Sebagian besar dari kode yang saya tulis setidaknya berdasarkan permintaan rekan-rekan (yang menggunakan R tetapi tidak memprogram sendiri sebanyak itu) seperti untuk saya sendiri.
Saya menggunakan persyaratan formal suatu paket (dokumentasi) untuk "memaksa" saya membersihkan dan mendokumentasikan kode saya.
Saya setuju dengan @JohnRos bahwa ada cukup perbedaan antara menulis paket dan menerbitkan paket.
Saya biasanya paket awal, tetapi kemudian membuat paket hanya "semipublic". Artinya, mungkin tersedia di server internal (atau di r-forge), sehingga kolega saya dapat mengakses paket. Tetapi saya menerbitkan ke CRAN hanya setelah paket telah digunakan selama berbulan-bulan atau bahkan beberapa tahun oleh rekan-rekan dekat. Ini tidak memunculkan semua bug sesuai dengan poin @Nick Cox # 3, tetapi cukup banyak.
Versi paket (saya cantumkan tanggal setelah tanda hubung dalam nomor versi) membuatnya mudah untuk memperbaiki hal-hal ("untuk melakukan ini dan itu, pastikan Anda menginstal setidaknya versi minggu lalu")
Menurut kontrak kerja saya, majikan saya memiliki kata terakhir pada keputusan apakah dan bagaimana sebuah paket dapat dipublikasikan ke dunia luar.
Hal mana saya tidak belum memiliki strategi yang baik untuk kemasan adalah data.
Komentar untuk daftar alasan Anda:
- tidak adanya paket lain dalam sub-bidang yang sama;
Tidak menemukan paket yang melakukan apa yang saya butuhkan untuk saya memicu penulisan kode, tetapi tidak ada hubungannya dengan keputusan apakah akan mengemas atau tidak.
- kebutuhan untuk bertukar dengan peneliti lain dan memungkinkan reproduksibilitas percobaan;
Secara pasti. Mungkin sudah perlu berbagi antara beberapa komputer yang saya gunakan.
Dan di antara poin-poin yang bisa mengarah pada keputusan yang bertentangan:
- bagian dari metode yang digunakan sudah ada dalam beberapa paket lain;
Anda dapat mengimpor metode-metode itu ke dalam paket / kode Anda: ini adalah titik terhadap penulisan kode tersebut, tetapi hanya secara tidak langsung berkaitan dengan pengemasan
- jumlah fungsi baru tidak cukup untuk membenarkan membuat paket independen baru.
Bagi saya, tidak ada jumlah minimum fungsi untuk memulai paket. Dalam paket pengalaman saya cenderung tumbuh "secara otomatis". Sebaliknya, setelah saya menemukan diri saya beberapa kali bercabang dari paket baru dari yang lain (karena misalnya beberapa fungsi pembantu pada akhirnya ternyata berbeda secara tematis dan berguna dalam situasi lain juga), saya sekarang agak segera membuat paket baru.
Juga, jika Anda tidak menulis dokumentasi dan tes, ini bisa menjadi jumlah pekerjaan yang penghalang ketika sejumlah fungsi "cukup" untuk membuat paket menumpuk.
(Jika Anda segera menulisnya, maka upaya tambahan untuk memasukkannya ke dalam paket dapat diabaikan begitu Anda mengetahui alur kerjanya).