یک زبان برنامهنویسی و نرم افزار رایگان است که توسط «راس ایهاکا» (Ross Ihaka) و «رابرت جنتلمن» (Robert Gentleman) در سال 1993 تهیه شده است. R دارای کتابخانههای گستردهای از انواع روشهای آماری و شیوههای ترسیم نمودارها است. در این زبان برنامه نویسی، «الگوریتمهای یادگیری ماشین» (Machine Learning Algorithm)، «رگرسیون خطی» (Linear Regression)، «سریهای زمانی» (Time Series) و «استنباط آماری» (Statistical Inference) قابل استفاده هستند.
بیشتر «کتابخانههای» (Library) یا «بستههای» (Package) قابل دسترس در R، با خود زبان برنامه نویسی R نوشته شدهاند، اما برای کارهای محاسباتی سنگین، کدهایی به زبانهای C++ ،C و Fortran نیز قابل دسترس بوده و کتابخانههایی با این زبانها، نوشته شدهاند.
زبان برنامهنویسی R نه تنها در بین دانشگاهیان و محققین مورد اقبال قرار گرفته است، بلکه بسیاری از شرکتهای بزرگ نیز از زبان برنامه نویسی R استفاده میکنند. در این بین میتوان به شرکتهایی مانند Uber ،Google ،Airbnb و Facebook اشاره کرد.
تحلیل دادهها با R در مجموعهای از مراحل زیر انجام میشود:
به طورکل، کاربرد زبان برنامه نویسی R را میتوان در نتیجهگیری آماری، آنالیز داده و الگوریتم یادگیری ماشین یا به عبارتی Machine Learning بیان کرد.
از طرفی دیگر، اگر به استفاده از این زبان در صنعت بپردازیم، خواهیم دید که بعد از دانشگاهیان، از این زبان در حیطهی آمار استفاده به مراتب بیشتری شده است، پس از آن، مورد استفاده در صنعت بهداشت و درمان بوده و درنهایت در حوزه Machine Learning مورد توجه صنعت و بازار کار گرفتهاست.
بنابراین میتوان آمار، استخراج گرافها و نمودارها و نیز یادگیری ماشین را کاربردهای اصلی زبان R دانست که به همراه کتابخانهای کارآمد که در اختیار یک کاربر برنامهنویس قرار میگیرد، میتوان برنامههایی حرفهای، کارآمد و مفیدی را تولید کرد.
این کتابخانه و تمامی الگوریتمهای فهرست شده، در CRAN، در دسترس قرار گرفته اند. از آنجا که CRAN، رایگان و Open Source میباشد بنابراین یک کاربر برنامهنویس میتواند در هر زمان و مکان به صورت رایگان و Open Source، این الگوریتمها را استفاده کند و یا آنها را دچار تغییر و بهبود کند.
گفتنی است برای ارائه کار و همچنین اشتراک گذاری کار، چند روش در این زبان وجود دارد.
برنامه Markdown R و نیز اپلیکشن Shiny بهعلاوه از طریق نشانی وبسایت شرکت برنامه نویسی R و در نهایت از طریق نشانی وب سایت Rpub ونیز GitHub روشهایی است که این زبان برنامهنویسی برای ارتباط گیری در دسترس کاربران قرار داده است.
همچنین یک کاربر برنامهنویس میتواند برنامهی تحریر شده را به فرمتهای مختلفی از قبیل HTML، Word، PDF/Latex و PDF Beamer تبدیل کند که این امر در حرفه برنامهنویسی، ارزشمند است.
با توجه به اینکه امروزه، علوم داده که با عنوان Data Science، موفقیت کسب و کارها را شکل میدهد و همچنین از طرفی دیگر این هوش مصنوعی و یادگیری ماشین است تعیین کنندهی آینده همان کسب و کارها هستند بنابراین زبان برنامهنویسی R را میتوان همگام و همسو با موفقیت و آینده کسب و کارها دانست چرا که این زبان ابزارهای بسیار مناسبی برای تجزیه و تحلیل داده، یادگیری ماشین و همچنین الگوریتمهای مناسب هوش مصنوعی را در خود دارد.
یکی از مواردی که یک کاربر برنامهنویس می بایست به آن توجه داشته باشد این است که یادگیری این زبان، کمی دشوار و زمانبر است و بسیاری از برنامهنویسان نیمهحرفهای پس از گذراندن دورههای ابتدایی این زبان، راه و شیوه دیگری را برای نوشتن برنامه در پیش گرفتهاند بنابراین دانستن اینکه تحریر و کار با این زبان اصلا ساده نیست، امری حیاتی محسوب میشود.
البته لازم به ذکر است که با بهبود فضای این زبان که توسط Hadley Wickham صورت گرفته است بسیاری از امور نسبت به قبل راحت تر شده است و ساخت گراف و نمودار همانند سالها قبل سخت و دشوار نیست و همچنین این زبان دیگر جزو زبانهای گیجکننده در بین برنامهنویسان به شمار نمیرود.
با تمام این مواردی که از دشواری در یادگیری و کار با زبان برنامهنویسی R گفته شد، به جرات میتوان گفت که با این زبان میتوان بهترین الگوریتمهای یادگیری ماشین Machine Learning را پیاده سازی کرد و یا متنوع ترین کارایی را از الگوریتمهای این زبان استخراج نمود.
از قابلیت های دیگر زبان برنامهنویسی R این است که این زبان میتواند بسیار کارآمد و سریع با دیگر زبانها ارتباط برقرار کند.
یک برنامهنویس میتواند زبان برنامهنویسی R را با پایگاههای داده گوناگون نظیر Spark یا Hadoop ارتباط دهد. همچنین برنامه تحریر آمده میتواند با پایتون، جاوا و C++ ارتباط بگیرد.
همچنین میتوان گفت که زبان برنامهنویسی R، این امکان را میدهد که عملیات محاسباتی را در هستههای مختلف سختافزار CPU تقسیم کند و از انباشته شدن عملیات محاسباتی در یک هسته و یا متراکم شدن هسته CPU جلوگیری کند و همانطور که میدانید این امر باعث بر سریع شدن عملیات محاسبه و یا تشکیل گراف ونمودار در برنامه و در نهایت ویژگی ارزشمندی به نام سریع شدن برنامهی نوشته شده خواهد شد.
در R همهی افراد میتوانند بستههای جدید ارائه کنند، رفع اشکال کنند و برای بهبود کد راهکار ارائه دهند.
در زبان برنامهنویسی R استاندارد برخی از بستهها (Package) پایین است.
R در مدیریت حافظه (Memory Management) خیلی خوب عمل نمیکند و ممکن است تمامی حافظه موجود را مصرف کند.
توابع و برنامهها در R در بستههای (Package) مختلفی قرار دارند و این امر سرعت برنامهنویسی، در مقایسه با زبانهایی مانند پایتون (Python) یا متلب (MATLAB)، را بهشدت کندتر میکند.
در R هیچ تیمی مخصوص پاسخ به مشکلات و سؤالات اختصاص داده نشده است و فقط کاربران در انجمن میتوانند از کمک هم استفاده کنند.
اگر استفاده از R در صنعت را بررسی کنیم، میبینیم که بیشترین استفاده توسط افراد آکادمیک انجام میشود. R یک زبان برای گرفتن آمار است. R همچنین اولین انتخاب در صنعت بهداشت و درمان و پس از آن دولت و مشاوره است.
حرف آخر:
در این متن به بررسی زبان برنامه نویسی R و همچنین قابلیتهای آن پرداختیم. البته در بخشی هم به مزایا و معایب آن اشاره کردیم. روند رو به رشد کاربران و همچنین منبع باز بودن (Open Source) آن، از موضوعات دیگری است که بیشتر کاربران را به سمت برنامه نویسی با R جذب کرده است. سرعت انجام محاسبات ماتریسی و برداری در R همه را شگفت زده کرده و به عنوان یک ابزار بیرقیب شناسانده است.