Apakah layak untuk kode produksi (disebarkan)

25

Saya telah membaca sejumlah artikel yang berbicara tentang perusahaan seperti Google, Facebook, dan banyak lainnya yang menggunakan R untuk penelitian. Skenario lain yang saya baca adalah perusahaan menggunakan R untuk membuat prototipe solusi analitik dan kemudian mengimplementasikannya kembali dalam bahasa lain.

Saya mencoba mencari literatur tentang perusahaan yang menggunakan R untuk kode analitik produksi aktual. Kasus penggunaan mungkin merupakan sistem pemberi rekomendasi yang berinteraksi dengan pengguna melalui halaman web yang mendapat respons dari skrip R yang dijalankan pada server jarak jauh. Fakta bahwa saya kesulitan menemukan laporan semacam itu membuat saya bertanya-tanya apakah itu tidak disarankan. Jika demikian mengapa?

drob
sumber
1
Ini pertanyaan yang bagus. Saya punya firasat, tapi saya tidak cukup tahu untuk membuat ini jawaban yang sebenarnya. Kecurigaan saya adalah karena R didistribusikan di bawah GPL, setiap produk turunan yang menggunakannya harus bebas dan open-source juga. Ini mungkin berarti perusahaan yang ingin mendapat untung dari perangkat lunak perusahaan akan menjauh dari R karena mereka tidak akan dapat menjual produk.
gregmacfarlane
3
Hanya jika keuntungan Anda didasarkan pada penjualan perangkat lunak --- dan bahkan kemudian, beberapa orang masih memberikan perangkat lunak seperti RStudio yang kode sumbernya ada di github.
Dirk Eddelbuettel

Jawaban:

16

Ya itu. Lihat misalnya di halaman ini untuk contoh server RServe R yang indah tanpa kepala (oleh anggota R Core, Simon Urbanek) yang mencantumkan penyebaran ini:

Some projects using Rserve:
   The Dataverse Network Project   Phenyx                     "J" interface
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

dengan tautan pada halaman yang dirujuk di atas.

"Industri" cenderung lebih cerdik tentang perincian daripada akademisi, sehingga Anda akan kesulitan menemukan pernyataan "resmi". Tetapi vendor seperti Revolution Analytics atau Oracle ship R dan salesman mereka mungkin memiliki cerita untuk Anda ....

Dirk Eddelbuettel
sumber
3
+1 untuk penjual. Katakanlah Anda tertarik untuk membeli sesuatu, dan sejumlah besar tenaga penjualan akan memberikan SSN CEO mereka.
Fomite
1

Biasanya bukan sebagai R adalah bahasa yang ditafsirkan, yang rata-rata berkali-kali lebih lambat dari kode yang dikompilasi setara. Saat mengonversi program Anda ke C, Fortran, atau Java membutuhkan investasi yang signifikan, kode ini dapat berjalan 10-100X lebih cepat daripada versi R yang setara. Selain itu, R memiliki alat yang sangat terbatas untuk memanipulasi kumpulan data besar, terutama yang membutuhkan kluster untuk memproses atau memerlukan perangkat keras khusus. Selain itu, sebagian besar implementasi komersial perlu menyediakan antarmuka pengguna dan masuk ke dalam kerangka kerja yang ada, yang biasanya ditulis dalam bahasa lain. Meskipun Anda dapat berinteraksi dengan kode R yang ada dari sebagian besar bahasa yang dikompilasi (ada pembungkus di luar sana), Anda akan menemukan bahwa rutinitas inti numerik Anda masih tidak akan lebih cepat daripada kode R asli. Pada akhir hari,

pengguna1337732
sumber
2
> (...) kodenya benar-benar dapat menjalankan 10-100X lebih cepat daripada versi R yang setara yang saya tidak setuju. Hampir semua perpustakaan R ditulis dalam bahasa C atau Fortran. R sebagian besar berfungsi sebagai "perekat" di antara mereka, dan kinerjanya yang relatif buruk tidak masuk hitungan.
Adam Ryczkowski
1
Tidak benar. Sementara pustaka inti dapat ditulis dalam C, kebanyakan algoritma tingkat tinggi dalam R ditulis dalam R. JIT optimisasi mengubah aturan sehubungan dengan kinerja bahasa yang ditafsirkan dibandingkan bahasa yang dikompilasi, tetapi sejauh yang saya tahu tidak ada upaya bersama baris-baris ini sedang berjalan untuk R (Python memang memiliki upaya yang kuat: lihat PyPy).
user1337732
1
Saya secara teratur menggunakan R untuk mengerjakan matriks yang berukuran 2 GB.
Jan Galkowski
0

Saya percaya (tapi ini didasarkan pada anekdot) bahwa R cenderung lebih banyak digunakan sebagai bahasa prototyping oleh perusahaan yang Anda sebutkan di atas. R unggul dalam tugas mengembangkan dan menguji berbagai model dengan cepat dan efektif. Namun, itu tidak cocok untuk tugas-tugas personalisasi karena ini sering perlu terjadi ketika pengguna berinteraksi dengan situs web tertentu dan saya percaya (sekali lagi, ini kebanyakan anekdot) bahwa model seperti itu cenderung ditulis ulang dalam bahasa yang dikompilasi. (Java, C, C ++).

Yang sedang berkata, pertanyaan yang bagus dan saya ingin terbukti salah tentang ini.

richiemorrisroe
sumber