Saya punya rencana belajar R dalam waktu dekat. Membaca pertanyaan lain saya tahu tentang Clojure. Sekarang saya tidak tahu harus berbuat apa.
Saya pikir keuntungan besar R bagi saya adalah bahwa beberapa orang di Ekonomi menggunakannya, termasuk salah satu penyelia saya (meskipun yang lain mengatakan: menjauhlah dari R!). Salah satu keuntungan Clojure adalah berbasis Lisp, dan ketika saya sudah mulai belajar Emacs dan saya tertarik untuk menulis penyesuaian saya sendiri, akan sangat membantu (ya, saya tahu Clojure dan Elisp adalah dialek Lisp yang berbeda, tetapi mereka baik Lisp dan dengan demikian mirip saya bayangkan).
Saya tidak bisa bertanya mana yang lebih baik, karena saya tahu ini sangat pribadi, tetapi bisakah seseorang memberi saya keuntungan (atau kelebihan) dari Clojure x R, terutama dalam hal praktis? Misalnya, mana yang harus lebih mudah dipelajari, mana yang lebih fleksibel atau lebih kuat, mana yang memiliki lebih banyak perpustakaan, lebih banyak dukungan, lebih banyak pengguna, dll?
Penggunaan yang saya maksudkan : Sebagian besar estimasi saya harus dilakukan menggunakan Matlab, jadi saya tidak mencari apa pun yang terlalu mendalam dalam hal analisis statistik, melainkan perangkat lunak untuk menggantikan Excel untuk manipulasi dan visualisasi data awal, ringkasan statistik dan pembuatan bagan, tetapi juga beberapa analisis statistik dasar atau upaya awal estimasi saya.
Jawaban:
Mari saya mulai dengan mengatakan bahwa saya suka kedua bahasa: Anda tidak dapat salah dengan salah satu, dan mereka tentu lebih baik daripada sesuatu seperti C ++ atau Java untuk melakukan analisis data.
Untuk analisis data dasar saya akan menyarankan R (terutama dengan plyr). IMO, R sedikit lebih mudah dipelajari daripada Clojure, meskipun ini tidak sepenuhnya jelas karena Clojure didasarkan pada Lisp dan ada banyak sumber daya Lisp fantastis yang tersedia (seperti SICP ). Ada lebih sedikit kata kunci di Clojure, tetapi perpustakaan jauh lebih sulit untuk diinstal dan bekerja dengan. Juga, perlu diingat bahwa R (atau S) sebagian besar berasal dari Skema, sehingga Anda akan mendapat manfaat dari pengetahuan Lisp saat menggunakannya.
Secara umum:
Keuntungan utama R adalah komunitas menggunakan CRAN (lebih dari 2461 paket dan terus bertambah). Tidak ada yang akan dibandingkan dengan ini dalam waktu dekat, bahkan aplikasi komersial seperti matlab.
Clojure memiliki keuntungan besar dalam menjalankan JVM yang artinya dapat menggunakan pustaka berbasis Java apa pun dengan segera.
Saya ingin menambahkan bahwa saya memberikan ceramah yang berkaitan dengan Clojure / Incanter ke R beberapa waktu lalu, jadi Anda mungkin merasa tertarik. Dalam pengalaman saya tentang membuat ini, Clojure umumnya lebih lambat dari R untuk operasi sederhana.
sumber
Saya telah menjadi pengguna R yang berat selama 6-7 tahun terakhir. Sebagai bahasa, ia memiliki beberapa batasan desain. Namun, untuk pekerjaan di bidang ekonometrika dan analisis data, saya masih dengan sepenuh hati merekomendasikannya. Ini memiliki sejumlah besar paket yang akan relevan bagi Anda untuk ekonometrik, seri waktu, pemodelan pilihan konsumen, dll. Dan tentu saja visualisasi yang sangat baik, aljabar yang baik dan perpustakaan numerik dll. Saya tidak akan terlalu khawatir tentang batasan ukuran data. Meskipun R tidak dirancang untuk "data besar" (tidak seperti, katakanlah, SAS) ada beberapa cara untuk mengatasinya. Ketersediaan paket adalah apa yang membuat perbedaan, sungguh.
Saya hanya membaca spesifikasi bahasa Clojure, dan itu indah dan bersih. Ini membahas secara alami masalah paralelisasi dan skala. Dan jika Anda memiliki pengetahuan dasar java atau OOP, Anda bisa mendapat manfaat dari sejumlah besar perpustakaan java berkualitas tinggi.
Masalah yang saya miliki dengan Clojure adalah bahwa itu adalah operasi one-man (R.Hickey) baru-baru ini, oleh karena itu 1) sangat berisiko 2) sangat tidak dewasa 3) dengan adopsi niche. Sangat cocok untuk penggemar, pengadopsi awal, orang-orang CS / ML yang ingin mencoba hal baru. Untuk pengguna yang melihat bahasa sebagai alat untuk mencapai tujuan dan yang membutuhkan kode yang sangat kuat yang dapat dibagikan kode dengan orang lain, bahasa yang sudah mapan tampaknya merupakan pilihan yang lebih aman. Hanya tahu siapa dirimu.
sumber
Pembaruan (Agustus 2014): seperti komentar @gappy di bawah ini, sejak R versi 3.0.0 batasnya lebih tinggi dan berarti R mampu menangani kumpulan data yang lebih besar.
Inilah poin data: R memiliki "plafon data besar" , berguna untuk mengetahui apakah Anda berencana bekerja dengan set data besar.
Saya tidak yakin apakah batasan yang sama berlaku untuk Clojure / Incanter, apakah itu mengungguli R atau sebenarnya lebih buruk. Saya membayangkan JVM mungkin dapat menangani dataset besar, terutama jika Anda berhasil memanfaatkan kekuatan fitur malas Clojure.
sumber