زبان برنامه نویسی R
1399-07-09

زبان برنامه نویسی R، یک پدیده عجیب در یادگیری ماشین

دلیل محبوبیت زبان R

زبان برنامه نویسی Rبچه‌ها جلسه امروز درسمون متفاوت‌تر از همیشه هست. امروز می‌خواهم درباره زبان برنامه نویسی R باهاتون صحبت کنم. کسی درباره این زبان برنامه نویسی چیزی میدونه؟ استاد ما فقط میدونیم که یک زبان برنامه نویسی در حوزه داده‌های آماری هست. آفرین کاملا درسته. پس بریم سراغ بحث اصلیمون.

این زبان برای اولین بار توسط راس‌ایهاکا و رابرت جنتلمن در سال 1993 نوشته شد و در حال حاضر توسط گروهی از متخصصان علم‌آمار به نام "تیم هسته نرم‌افزار R" در حال توسعه و ساخت‌ است. نورمن‌نای (Norman Nie) پژوهشگر شناخته ‌شده‌ در حوزه‌ی تحقیقات پیمایشی که یکی از ابداع کننده‌های SPSS در اواخر دهه ۶۰ میلادی بود، درباره زبان برنامه نویسی R میگه: یکی از قدرتمندترین و قابل انعطاف‌‌ترین زبان برنامه‌نویسی آماری در جهان است. ایشون در حال حاضر مدیر عامل شرکت Revolution Analytics در پالو‌آلتو، مشغول به فعالیت در تولید و عرضه نسخه تجاری برنامه‌های R است.

تعریف:

پس R یک زبان و محیط نرم‌افزاری برای محاسبات آماری و علم داده‌هاست که براساس زبان‌های اس و اسکیم پیاده‌سازی شده. این نرم‌افزار متن-باز از نظر دستورات، شباهت زیادی به نرم‌افزار آماری S-PLUS داره؛ اما هر کدوم هسته‌های متفاوتی داشته که قابلیت‌های متفاوتی رو ارائه میدن.

R بیشتر زمینه‌هایی مثل تحلیل سری‌های زمانی، رگرسیون‌خطی و غیرخطی، آزمون فرض‌های کلاسیک، کدگذاری، خوشه‌بندی و … رو پوشش میده و برای اشکال گرافیکی و نمودارها، نرم‌افزاری قدرتمند است. در محیط آن کدهای سی (C)، سی پلاس پلاس (C++) و فورترن (Fortarn) قابلیت اتصال و فراخوانی موقع اجرای برنامه را دارد که کاربران خبره می‌توانند توسط کدهای سی، مستقیماً اشیا R را تغییر بدهند. یک نکته جالب دیگه درباره این زبان برنامه نویسی اینه که قابل به‌کارگیری در محاسبات ماتریسی است و در این زمینه، همپای نرم‌افزارهایی مثل اُکتاو و نسخهٔ تجاری آن یعنی متلب (MATLAB) می‌باشد.

دلیل محبوبیت زبان برنامه نویسی R:

بچه‌ها فکر می‌کنید چرا این زبان محبوب شد؟ استاد به نظر من با توجه به صحبت‌هایی که تا الان گفتین اولین دلیل محبوبیتش، رایگان بودنشه. بله کاملا درسته؛ از طرفی دیگه این نرم‌افزار قابل نصب بر روی انواع سیستم‌عامل‌هاست که مشکل بسیاری از کاربرا رو آسون کرده. البته اینم بدونید که نسخه‌های غیر‌متن-باز هم داره که شامل نسخه مبتنی بر پردازش داده‌های کلان (Big data)، اینترپرایز (Enterprise) و همین‌طور نسخه Cloud مبتنی بر محاسبات ابری است.

دیگه درباره این زبان چه چیزی دوست دارید بدونید، به بحثمون ادامه بدیم یانه؟ استاد اگه میشه درباره کاربردها، محدودیت‌ها و اینکه اصلا در چه رشته‌هایی کاربرد داره صحبت کنید. پس بحثمونو ادامه میدیم.

کاربردهای مهم زبان برنامه نویسی R:

کاربردهای مهم زبان برنامه نویسی Rحالا بریم سراغ کاربردها: 

  1. R هم زبان برنامه‌نویسی و هم یک محیط نرم‌افزاری برای محاسبات آماری و علم داده‌ها محسوب میشه.

  2. محدوده گسترده‌ای از تکنیک‌های آماری رو داره.

  3. داشتن بسته‌های نرم‌افزاری قدرتمند برای تجزیه و تحلیل نتایج آماری

  4. داشتن کتابخانه برای انجام عملیات داده کاوی مثل دسته‌بندی، خوشه‌بندی، تحلیل شبکه اجتماعی، یادگیری تقویتی و…

  5. داشتن کتابخانه‌های خاص برای انجام عملیات تحلیلی در زمینه‌های مختلف علمی

  6. توسعهٔ قابلیت‌های R با اضافه شدن بسته‌هایی که کاربران خبره ایجاد میکنن

  7. داشتن محیط خط فرمان برای ورود و اجرای دستورات و همینطور قابل ‌استفاده برای کاربران نرم‌افزار S-Plus 

  8. داشتن امکانات ذخیره، بازیابی و دست‌کاری داده‌ها.

 

بیشتر بخوانید: ماشین لرنینگ چیست و چه کاربردهایی دارد؟cool

 

محدودیت‌های زبان برنامه نویسی R:

درباره محدودیت‌هایی که داره میتونم اشاره کنم به مواردی مثل:

  • برای استفاده و برنامه‌نویسی باید فرمان‌های آن را بیاموزید.

  • زبان R مفسری است و همون‌طور که میدونید یعنی برای اجرا ترجمه نمی‌شود و به ‌صورت فایل اجرایی (.exe*) در نمی‌آید.

  • برای پردازش تکنیک‌های تحلیلی و حجم داده‌ها محدود است؛ یعنی نباید از مقدار ۱۶ ترابایت بیشتر شود که میتونه در برخی از کاربردها یک محدودیت جدی باشه که در این شرایط استفاده از آن چندان مناسب نیست.

  • اینکه یک سیستم تجاری قوی از برنامه R پشتیبانی نمی‌کند.


 در چه رشته‌هایی کاربرد دارد؟

رشته های پرکاربرد زبان برنامه نویسی Rبه طور کلی در تمام رشته‌های محاسباتی که به روش‌های آماری مربوط می‌باشد یعنی از رشته‌های علوم پایه گرفته تا رشته‌های مختلف پزشکی، فنی و غیره می تونه مورد استفاده قرار بگیره. یکسری از رشته‌ها که نرم‌افزار R در آن‌ها بسیار کاربرد داره: رشته بیوانفورماتیک یا زیست‌داده‌‌ورزی است و دیگری دانش استفاده از علوم‌کامپیوتر و آمار و احتمالات در شاخه بیولوژی یا زیست‌شناسی مولکولی هست. 

به طور کلی رشته‌های زیر می‌تونن در تحلیل‌های آماری خود از R استفاده کنند:

  • آمار و احتمالات

  • آمار زیستی

  • زیست‌شناسی و شاخه‌های مرتبط

  • علوم پزشکی و داروسازی

  • بیوتکنولوژی

  • اپیدمیولوژی و علوم‌محیطی

  • بیوانفورماتیک

  • علوم‌کامپیوتر

  • فیزیک

  • شیمی 

  • آمار مکانیک

  • علوم روانشناسی و اجتماعی

  • مدیریت


پایان جلسه:

خب بچه‌ها در آخر صحبت‌های امروزمون درباره زبان برنامه نویسی R دو تا مطلب دیگه میگم و جلسه امروزمون رو به پایان میرسونم.

معرفی نرم افزارهای زبان برنامه نویسی Rمورد اولی که میخوام بگم معرفی بعضی از نرم‌افزارهای مورد استفاده در زبان برنامه‌نویسی R هست.

  • JGR: یک ویرایشگر چند سکویی بر پایهٔ جاوا.

  • R Commander: یک رابط گرافیکی بر پایهٔ tcltk که قابلیت استفاده از منوها به‌جای نوشتن دستورات را دارد و برای کاربران مبتدی و آشنا با اس پلاس مناسب است. 

  • آراکسل: RExcel امکان استفاده از R و R Commander در برنامهٔ ماکروسافت اکسل را فراهم می‌کنه.

  • Rggobi: رابط برنامهٔ GGobi برای کشیدن داده‌های ماتریسی

مورد بعدی کتاب‌های آموزشی زبان برنامه نویسی R هست که به زبان‌های مختلف منتشر شده. به عنوان منابع اصلی یادگیری این زبان می‌توان به Hands-On Programming with R نوشته Garrett Grolemund و R for Data Science به نویسندگی Hadley Wickham & Garrett Grolemund اشاره کرد. البته منابع مختلفی نیز به زبان فارسی وجود داره که جزء گزینه‌های خوب برای آموزش است مثل کتاب آموزش زبان برنامه نویسی R به نویسندگی بهنام بابایی.

خب بچه‌ها امیدوارم که جلسه درسی امروز براتون جالب بوده باشه؛ خسته نباشین.

مقالات مرتبط

تفاوت dp و px در برنامه نویسی اندروید

واحد های اندازه گیری اندروید
زهرا چگینی
10

به نظر شما تفاوت dp و px در برنامه نویسی اندروید، این دو واحد اندازه گیری چیست؟ پس ما را همراهی کنید.

delegate چیست؟

Delegate ها چرا به زبان سی شارپ اضافه شدند؟
مرضیه فتاحی
15

delegate چیست؟ چه کاربردی دارد؟ چگونه و در چه موقعیت هایی باید ازآنها استفاده کرد؟ با ما همراه شوید تا تمامی این سوال ها دریابید.

اکشن (Action) در سی شارپ، راهی برای خواناتر شدن کدها

موارد استفاده ی Action در سی شارپ
زهرا چگینی
10

Action در سی شارپ از پایه و اساس Delegate ها استفاده میکند، درحقیقت همان Delegate های هستند که کار را برای ما راحت تر میکنند.

Extension method درسی شارپ، راهی برای کارایی بالا در کدها

اکستنشن (extension) درسی شارپ
مرضیه فتاحی
10

هدف ما دانستن نکات مهمextension method در سی شارپ، نحوه استفاده و همچنین کاربرد آن در کدنویسی است. پس با ما همراه شوید.

لیست کامل تگ های html که هیچ کس به شما نخواهد گفت

آشنایی با تگ های html
زهرا چگینی
15

تگ ها در html نقش مهمی دارند زیرا تمامی کارهای html با تگ انجام می‌شود. به همین دلیل ما یک لیست کامل از تگ‌های html برای شما آماده کرده‌ایم تا از آن استفاده کنید.

ویژگی های جدید asp.net core که حیرت برنامه نویسان را برانگیخت

معرفی ویژگی های جدید asp.net core از مایکروسافت
مرضیه فتاحی
10

ویژگی های جدید asp.net core چیست؟ مایکروسافت در این نسخه چه امکاناتی را برای برنامه نویسانش قرار داده است. اگر شما هم خواهان دانستن این مطالب هستید، ما را همراهی کنید.