زبان برنامه نویسی R چیست؟
R یک زبان برنامهنویسی و نرمافزار رایگان است که توسط راس ایهاکا و رابرت جنتلمن در سال ۱۹۹۳ ساخته شد. R دارای کاتالوگ گستردهای از روشهای آماری و گرافیکی است. این نرمافزار شامل الگوریتمهای یادگیری ماشین، رگرسیون خطی، سریهای زمانی و استنباط آماری میباشد. بیشتر کتابخانههای R به زبان R نوشته شدهاند، اما برای کارهای محاسباتی سنگین، کدهای C ، C++ و Fortran ترجیح داده میشوند.
R نه تنها به صورت آکادمیک آموزش داده میشود، بلکه بسیاری از شرکتهای بزرگ از زبان برنامهنویسی R استفاده میکنند، از جمله Uber ، Google ، Airbnb ، Facebook و …
تجزیه و تحلیل دادهها با استفاده از R طی چنین مراحلی انجام میشود: برنامهنویسی، تبدیل، کشف، مدلسازی و برقراری ارتباط.
- برنامهنویسی: R یک ابزار برنامهنویسی ساده و قابل دسترسی است.
- تبدیل: R از مجموعهای از کتابخانهها ساخته شده است که به طور خاص برای علم داده طراحی شدهاند.
- کشف: دادهها را بررسی کنید، فرضیه خود را اصلاح کرده و آنها را تجزیه و تحلیل کنید.
- مدلسازی: R مجموعه وسیعی از ابزارها را برای ساخت مدل مناسب دادههای شما فراهم میکند.
- برقراری ارتباط: تلفیق کدها، نمودارها و خروجیها با گزارش R Markdown یا ساخت برنامههای R Shiny برای به اشتراک گذاشتن با دنیا
موارد استفاده از زبان R
- استنباط آماری
- تحلیل داده ها
- الگوریتم یادگیری ماشین
زبان R در صنعت
اگر استفاده از R در صنعت را بررسی کنیم، میبینیم که بیشترین استفاده توسط افراد آکادمیک انجام میشود. R یک زبان برای گرفتن آمار است. R همچنین اولین انتخاب در صنعت بهداشت و درمان و پس از آن دولت و مشاوره است.
کاربردهای زبان R
کاربردهای اصلی R، آماری، تجسم و یادگیری ماشین است. تصویر زیر نشان میدهد که کدام بسته R بیشترین درخواست را داشته است. اکثر موارد از میان ۱۰ مورد برتر، مربوط به گردش کار یک دانشمند داده است: تهیه دادهها و اعلام نتایج.
تمام کتابخانههای R ، که حدود ۱۲ هزار عدد هستند، در CRAN ذخیره شدهاند که یک منبع آزاد است. برای انجام یادگیری ماشین یا تجزیه و تحلیل سریهای زمانی میتوانید کتابخانههای متعدد را دانلود و استفاده نمایید.
برقراری ارتباط با کمک زبان R
R روشهای مختلفی برای ارائه و به اشتراک گذاری دارد، این امر میتواند از طریق یک سند Markdown یا Shiny app انجام شود. سایتهایی مانندRpub و GitHub برای این کار میزبان شما خواهند بود.
در زیر نمونهای از کار میزبانیشده توسط Rpub را مشاهده میکنید.
میتوانید از اسناد خود در قالبهای مختلف خروجی بگیرید:
- سند:
- HTML
- PDF / لاتکس
- Word
- ارائه:
- HTML
- Beamer PDF
زبان برنامه نویسی R، یک زبان متن باز (Open Source) (اوپن سورس) اسکریپتی است که برای تحلیل های پیش بینی کننده و تجسم یا نمایش داده ها (مانند ترسیم نمودار ها و...) استفاده میشود. نسخهی اولیه ی زبان R در سال 1995 عرضه شد. این زبان به آماردانان دانشگاهی در زمینههای آکادمیک و دیگر افرادی که از مهارتهای برنامه نویسی برخوردار بودند اجازه میداد تا کار تحلیل های آماری پیچیده را انجام داده و نتایج این تحلیلها را به شکلهای متفاوت گرافیکی نمایش دهند.
اسم R از از حرف اول اسم دو سازندهی این زبان یعنی Ross Ihaka و Robert Genteleman گرفته شده است که هر دوی آنها در زمان ساخت این زبان در دانشگاه اوکلند (University of Auckland) مشغول بودند. زبان برنامه نویسی R شامل توابعی است که از مدل سازی خطی، مدل سازی غیر خطی، آمار کلاسیک، طبقه بندی، خوشه بندی و بسیاری از موارد دیگر پشتیبانی میکند. به دلیل داشتن ویژگیهای متعدد و قوی و همچنین کد باز بودن و داشتن مجوز GNU، استفاده از این زبان کاملا رایگان است. به همین خاطر این زبان در دانشگاه بسیار محبوب است. همچنین این زبان امکان کامپایل بر روی پلتفرمهای مختلف از جمله یونیکس، ویندوز، لینوکس و مک را دارد.
جذابیت زبان R، از محیطهای دانشگاهی -خواستگاه اصلی آن- به محیطهای تجاری نیز رسیده است. به این علت که بسیاری از تحلیلگران داده که در دانشگاه، زبان R را آموختهاند و با آن کار کردهاند، ترجیح میدهند به استفاده از آن ادامه دهند تا ابزاری جدیدی را انتخاب کنند که هیچ تجربه ای در آن ندارند.
محیط نرم افزاری زبان R
محیط برنامه نویسی زبان R حول یک رابط خط فرمان استاندارد یا Standard Command-Line Interface ساخته شده است. کاربران با استفاده از این محیط میتوانند دادهها را بخوانند و آنها را در فضای کاری یا Workspace بارگذاری کنند. دستورات مختلفی را اجرا کرده و از نتایج حاصل از آنها استفاده کنند. دستورات اجرا شده میتوانند موارد مختلفی باشند. از عملگرهای سادهی ریاضی مانند جمع، ضرب و تفریق گرفته تا تابعهای پیچیدهتر مانند رگرسیون خطی، توزیعهای مختلف و بسیاری از محاسبات پیشرفتهی دیگر.
کاربران همچنین میتوانند به وسیلهی این زبان توابع خود را بنویسند. هیچ محدودیتی در نوشتن توابع وجود ندارد. به عنوان مثال تابعی بنویسید تا 2 فایل دادهای جداگانه را گرفته و در خروجی یک فایل حاصل از ادغام آن دو فایل را نمایش دهند یا مثلا از دادههای حاصل از اجرای رگرسیون روی مجموعهای از دادهها، یک متغیر مخصوصی را بیرون بکشند و استفاده کنند و خیلی از کارهای دیگر.
همچنین استفاده از توابع حلقه یا Loopها در محیط برنامه نویسی R نیز امکان پذیر است. به وسیلهی حلقهها میتوان در محیطهای برنامه نویسی کارهایی که به تکرار نیاز دارند را انجام داد. مثلا بیرون کشیدن سمپلها از یک مجموعه دادهی بزرگ یا اعمال تغییراتی بر روی تمامی المانهای یک مجموعه.
مزایا و معایب زبان R
بسیاری از کاربران زبان برنامه نویسی R این واقعیت که دانلود آن رایگان است را دوست دارند. همچنین این زبان قابلیتهایی برای تجزیه و تحلیل داده های پیچیده را دارد و دارای یک جامعه فعال از کاربران آنلاین میباشد که برای کمک گرفتن و پشتیبانی میتوان به آنها مراجعه کرد.
به دلیل اینکه سالهای بسیار زیادی است که از عرضه ی این زبان میگذرد، این زبان تقریبا بالغ شده است. کاربران میتوانند پکیجها و کتابخانههای خارجی و ساخته شده توسط دیگران را دانلود کنند تا قابلیتهای بسیار گوناگونی را به کار خود اضافه کنند. به عنوان مثال پکیجهایی بوجود آمده است که به کاربران این امکان را میدهد تا بتوانند داده ها را به صورت بصری نمایش دهند، به پایگاه دادههای بیرونی متصل شوند و توابع پیشرفتهی آماری را اجرا کنند. همچنین یک محیط گرافیکی به نام RStudio ایجاد شده است تا کد نویسی به وسیله ی زبان R را راحت تر کند.
یکی از انتقادهایی که به زبان R میشود، تحلیلهای کند این زبان است وقتی که با مجموعه دادههای بزرگ مواجه میشود. دلیل این مشکل در واقع به علت پردازش تک رشته ای بودن یا Single-Threaded Processing است، به این معنی که نسخهی کد باز این زبان فقط میتواند از یک پردازنده (CPU) در آن واحد استفاده کند. این در حالی است که برای تجزیه و تحلیل داده های بزرگ مدرن یا همان کلان دادهها، نیاز به پردازش دادهها به صورت موازی میباشد که به صورت همزمان از دهها CPU در میان خوشه ها یا کلاسترهایی از سرورها برای پردازش استفاده میشود.
علاوه بر محدودیت تک رشتهای بودن پردازش دادهها، محیط برنامه نویسی R، یک برنامهی داخل مموری یا In-Memory است. به این معنی که تمامی دادهها و شیها داخل رم کامپیوتر ذخیره میشود. این امر باعث شده تا مقدار دادههایی را که زبان R میتواند در آن واحد بر روی آن کار کند، بشدت محدود کند.
زبان R و کلان داده ها
محدودیت هایی که بالاتر ذکر شد، باعث شده تا کاربرد زبان R در برنامه های کاربردی کلان دادهها کاهش پیدا کند. بنابراین به جای قرار دادن R در بحث استفاده در تولید و صنعت، بسیاری از کاربران سازمانی، از R تنها به عنوان یک ابزار تحقیقی استفاده میکنند. به این معنی که دانشمندان داده یا Data Scientists از زبان R برای تجزیه و تحلیل قسمتی از دادههای پیچیده استفاده میکنند و بعد از شناسایی همبستگیها و نتایج معنادار خروجی دادهها، این یافتهها را در تولید و صنعت یک سازمان در مقیاس بزرگ قرار میدهند.
بسیاری از شرکتهای فروشندهی محصولات نرم افزاری، پشتیبانی از زبان برنامه نویسی R را به محصولات و پیشنهادات خود اضافه کردهاند. این امر به زبان R این اجازه را میدهد تا جایگاه قوی تری در بخش کلان دادهها داشته باشد. کمپانیهایی از جمله IBM، Microsoft، Oracle، TIBCO Institute، TIBCO و Tableau و خیلی از کمپانیهای دیگر، بعضی از موارد زبان R را در نرم افزارهای تحلیلی خود اضافه کردهاند. همچنین پکیجهای کد باز و معروفی برای کار با کلان دادهها نیز وجود دارد.(مانند Hadoop و Spark)
جمع بندی
زبان برنامه نویسی R یکی از زبانهای محبوب در علوم آماری است و با توجه به تعداد پکیجهای بسیار بالا و کد باز بودن این زبان، در حال حاضر یکی از محبوب ترین زبان های برنامه نویسی در بین دانشجویان و کارشناسان علم آماری است. مقالات زیادی وجود دارند که کار های مربوط به نمودارها، آمارها و تحلیلهای آماری آن ها به وسیلهی این زبان انجام شده است و هر روزه به تعداد این مقالات نیز اضافه میشوند. بنابراین میتوان گفت که از این زبان در آینده نیز استفادههای بسیاری خواهد شد.