چقدر زبان برنامه‌نویسی R را می‌شناسید؟ R یک زبان برنامه‌نویسی متن‌باز است که در انجام‌دادن تحلیل‌های آماری به‌شدت پرکاربرد است. زبان R را تیم اصلی توسعه‌ی زبان R (R Development Core Team) توسعه می‌دهد و از آن نگهداری می‌کند. این زبان در بسیاری از پلتفرم‌ها (Platform)‌، مانند لینوکس (Linux)، ویندوز (Windows) و macOS قابل استفاده است.

مقدمه

در دنیای امروزی علم داده یا دیتا ساینس (Data Science) طوری در زندگی روزمره و صنعت ما انسان‌ها جای گرفته است که نمی‌توان آن را انکار کرد. نه‌تنها محققانی که با داده‌ها و تجزیه‌وتحلیل آن‌ها سروکار دارند، انسان‌های عادی نیز از مزیت وجود این علم بهره‌مند شده‌اند. در علم داده یا دیتا ساینس زبان‌های برنامه‌نویسی زیادی استفاده می‌شود که بی‌شک یکی از آن‌ها زبان R‌ است. اگر مطالعه‌ای در حوزه علم داده (Data Science) و هوش مصنوعی (AI) بکنید، قطعاً به زبان R‌ برمی‌خورید. در این مطلب قصد داریم این زبان را معرفی کنیم، ویژگی‌های خاص آن را بررسی کنیم، با مزایا و معایب آن آشنا شویم و درنهایت به برخی از کاربردهای این زبان نگاهی بیندازیم.

زبان R چیست؟

R یک زبان برنامه‌نویسی تفسیری (Interpreted) متن‌باز (Open-source) است که در پلتفرم‌هایی مانند Windows، Linux، macOS استفاده می‌شود؛ R همچنین به‌عنوان یک محیط نرم‌افزاری برای تحلیل اطلاعات آماری، نمایش گرافیکی داده، گزارش‌دهی و مدل‌کردن داده استفاده می‌شود.

زبان R، نه‌تنها امکان انشعاب (Branching) و حلقه‌گذاری (Looping)، امکان برنامه‌نویسی ماژولار (Modular Programming) را با استفاده از توابع به توسعه‌دهنگان می‌دهد؛ علاوه‌براین زبان R امکان ادغام با کدهای نوشته‌شده به زبان‌های C، C++، .Net و Python را دارد؛ این موضوع به کارایی این زبان کمک بسیار زیادی می‌کند.

می‌توان گفت در حال حاضر R یکی از مهم‌ترین ابزاری است که محققان، تحلیلگران داده، آمارشناسان و بازاریابان برای بازیابی، تجزیه‌وتحلیل، تجسم (Visualizing) و نمایش (Presenting) داده‌ها استفاده می‌کنند. از آنجا که R از نظر نحوی (Syntax) به دیگر زبان‌های پرکاربرد دنیا شباهت زیادی دارد، کدینگ (Coding) و یادگیری آن آسان است. برنامه‌های (Program) زبان R را می‌توان در هر IDE پرکاربردی، مانند R Studio، Rattle، Tinn-R و غیره، نوشت.

تاریخچه‌ی کوتاهی از زبان R

تاریخچه‌ی زبان R به حدود ۲۰ تا ۳۰ سال قبل بازمی‌گردد. این زبان را Ross lhaka و Robert Gentleman در دانشگاه Auckland در نیوزلند خلق کردند. نام این زبان هم از حرف اول اسم کوچک دو خالق آن برگرفته شده است. اولین پروژه R در سال ۱۹۹۲ بود و نسخه اولیه آن در سال ۱۹۹۵ منتشر شد. نهایتاً در سال ۲۰۰۰ نسخه‌ی پایدار بتا (Stable beta version) انتشار یافت. در حال حاضر زبان R را تیم اصلی توسعه‌ی زبان R (R Development Core Team) توسعه می‌دهد که انجمنی است متشکل از تعدادی توسعه‌دهنده که Ross lhaka و Robert Gentleman ایجاد کرده‌اند.

حال که با تاریخچه‌ی زبان R آشنا شدیم، در بخش بعد خواهیم دید که چرا توسعه‌دهندگان به این زبان توجه می‌کنند.

چرا زبان برنامه‌نویسی R؟

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

  • زبان برنامه‌نویسی R به‌عنوان ابزاری پیشرو برای یادگیری ماشین (Machine Learning)، آمار (Statistics) و تجزیه‌وتحلیل داده‌ها (Data Analytics) استفاده می‌شود. R به‌راحتی اشیا (Objects)، توابع (Functions) و بسته‌ها (Packages) را توسعه می‌دهد.
  • R یک زبان مستقل از پلتفرم (Platform-independent) است؛ یعنی می‌تواند در همه سیستم‌عامل‌ها استفاده شود.
  • R یک زبان رایگان متن‌باز (Open-source) است و هر کسی می‌تواند آن را در هر سازمانی بدون خرید مجوز (License) نصب کند.
  • زبان برنامه‌نویسی R، نه‌تنها یک بسته آماری (Statistical Package) است، امکان ادغام با زبان‌های دیگر مانند C و ++C را دارد؛ بنابراین، به‌راحتی می‌توانیم با بسیاری از منابع داده (Data Sources) و بسته‌های آماری (Statistical Packages) ارتباط برقرار کنیم.
  • زبان برنامه‌نویسی R انجمن گسترده‌ای از کاربران دارد و روزبه‌روز در حال رشد است.
  • R در حال حاضر یکی از پرطرفدارترین زبان‌های برنامه‌نویسی در حوزه علم داده یا دیتا ساینس (Data Science) است.

برخی از ویژگی‌های زبان R که لازم است بدانیم

ویژگی‌های آماری R از این قرار است:

  • آمار پایه (Basic Statistics): متداول‌ترین اصطلاحات آماری پایه عبارت‌اند از میانگین (Mean)، حالت (Mode) و میانه (Median). این‌ها همه با عنوان شاخص‌های گرایش مرکزی (Measures of Central Tendency) شناخته می‌شوند؛ بنابراین با استفاده از زبان R می‌توانیم گرایش مرکزی را خیلی راحت اندازه‌گیری کنیم.
  • گرافیک استاتیک (Static Graphic): R امکانات متعددی برای ایجاد و توسعه‌ی گرافیک‌های استاتیک (Static Graphics) دارد. این زبان انواع متنوعی از نمودارها (Plot)، مانند نقشه‌های گرافیکی (Graphic Maps)، نمودارهای موزاییکی (Mosaic Plots)، نمودارهای دودویی (Biplots)، را شامل است.
  • توزیع احتمال (Probability distributions): توزیع احتمال (Probability distributions) نقش مهمی در آمار دارد. با استفاده از R می‌توانیم به‌راحتی انواع مختلفی از توزیع احتمال (Probability distributions، مانند توزیع دوجمله‌ای (Binomial Distribution)، توزیع نرمال (Normal Distribution)، توزیع مربع کای (Chi-squared Distribution) و بسیاری دیگر، را داشته باشیم.

ویژگی‌های برنامه نویسی R

  • بسته‌های R (R Packages): یکی از ویژگی‌های اصلی R این است که امکان دسترسی به کتابخانه‌های متعددی را به ما می‌دهد. R دارای CRAN (شبکه‌ی جامع آرشیو R/ Comprehensive R Archive Network) است که مخزنی است که بیش از ده‌هزار بسته (Package) را در خود جای داده است.
  • رایانش توزیع‌شده (Distributed Computing): رایانش توزیع‌شده (Distributed Computing) مدلی است که در آن اجزای یک سیستم نرم‌افزاری برای بهبود کارایی و عملکرد در میان چندین کامپیوتر به اشتراک گذاشته می‌شوند. زبان R امکان رایانش توزیع‌شده (Distributed Computing) را از طریق بسته‌هایی (Package)، مانند دو بسته‌ی (Package) جدید ddR و multidplyr که در نوامبر ۲۰۱۵ منتشر شدند، به کاربران می‌دهد.

در بخش قبلی درباره‌ی ویژگی‌های اصلی آماری و برنامه‌نویسی R صحبت کردیم؛ در بخش بعد با برخی از مزایا و معایب این زبان آشنا خواهیم شد.

مزایای زبان R

  • زبان برنامه‌نویسی R جامع‌ترین بسته (Package) تحلیل آماری است؛ زیرا به‌طور معمول فناوری و مفاهیم جدید اغلب اولین بار در R ظاهر می‌شوند.
  • از آنجا که زبان برنامه‌نویسی R یک زبان متن‌باز (Open-source) است، می‌توانیم R را در هر مکان و هر زمانی اجرا کنیم.
  • R کراس پلتفرم (Cross-platform) است که روی هر سیستم‌عاملی اجرا می‌شود. زبان برنامه‌نویسی R برای سیستم‌عامل‌های GNU / لینوکس (Linux) ویندوز (Windows) و macOS مناسب است.

در R همه‌ی افراد می‌توانند بسته‌های جدید ارائه کنند، رفع اشکال کنند و برای بهبود کد راهکار ارائه دهند.

معایب زبان R

  • در زبان برنامه‌نویسی R استاندارد برخی از بسته‌ها (Package) پایین است.
  • R در مدیریت حافظه (Memory Management) خیلی خوب عمل نمی‌کند و ممکن است تمامی حافظه موجود را مصرف کند.
  • توابع و برنامه‌ها در R در بسته‌های (Package) مختلفی قرار دارند و این امر سرعت برنامه‌نویسی، در مقایسه با زبان‌هایی مانند پایتون (Python) یا متلب (MATLAB)، را به‌شدت کندتر می‌کند.
  • در R هیچ تیمی مخصوص پاسخ به مشکلات و سؤالات اختصاص داده نشده است و فقط کاربران در انجمن می‌توانند از کمک هم استفاده کنند.

برخی از کاربردهای زبان R

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

حوزه مالی (Finance)

علم داده یا دیتا ساینس (Data Science) در صنعت مالی بسیار کاربرد دارد و R محبوب‌ترین ابزار برای این کار است؛ اما چرا؟ چون R مجموعه‌ای از ابزارهای آماری پیشرفته‌ای را ارائه می‌کند که قادر به انجام‌دادن همه‌ی وظایف موردنیاز در حوزه‌ی مالی هستند.

با کمک R مؤسسات مالی می‌توانند ریسک‌های پیش‌رو را اندازه‌گیری کنند و از نمودارهایی مانند نمودارهای شمعدانی (candlestick charts)، نمودارهای تراکم (Density Plots)، نمودارهای برداشت (Drawdown Plots) و غیره استفاده کنند.

صنایع مالی هم‌چنین از روندهای آماری سری زمانی R (Time-series statistical processes of R) برای مدل‌کردن بازار سهام خود و پیش‌بینی قیمت سهام بهره می‌گیرند؛ هم‌چنین R ازطریق بسته‌های خود، مانند quantmod، pdfetch، TFX، pwt و غیره، امکاناتی برای استخراج داده‌های مالی فراهم می‌کند.

مراقبت‌های درمانی (Healthcare)

ژنتیک (Genetics)، بیوانفورماتیک (Bioinformatics)، کشف دارو (Drug Discovery)، همه‌گیرشناسی (Epidemiology) برخی از حوزه‌های مراقبت‌های درمانی هستند که از R استفاده می‌کنند. با کمک R این شرکت‌ها قادر به تجزیه‌وتحلیل و پردازش داده‌ها خواهند بود.

شبکه‌های اجتماعی (Social Media)

تجزیه‌وتحلیل احساسات (Sentiment Analysis)‌ و دیگر شکل‌های داده‌کاوی رسانه‌های اجتماعی (social media data mining)‌ برخی از ابزارهای آماری مهمی هستند که از R استفاده می‌کنند.

شبکه‌های اجتماعی (Social Media) یک حوزه چالش‌برانگیز برای علم داده یا دیتا ساینس (Data Science) محسوب می‌شود؛ زیرا داده‌های موجود در شبکه‌های اجتماعی اکثراً بدون ساختار مشخصی هستند. R برای تجزیه‌وتحلیل شبکه‌های اجتماعی (Social Media)، تقسیم‌بندی مشتریان بالقوه و هدف‌قراردادن آنان برای فروش محصولات استفاده می‌شود.

علاوه‌براین، استخراج احساسات کاربر یکی دیگر از موضوع‌های محبوب در تجزیه‌وتحلیل شبکه‌های اجتماعی است. با کمک R شرکت‌ها قادر به مدل‌سازی ابزارهای آماری هستند که احساسات کاربران را تجزیه‌وتحلیل می‌کند و به آنان امکان می‌دهد تجربه‌های خود را بهبود بخشند.

تجارت الکترونیک (E-commerce)

صنعت تجارت الکترونیکی یکی از مهم‌ترین بخش‌هایی است که از علم داده یا دیتا ساینس (Data Science) استفاده می‌کند و R یکی از ابزارهای استانداردی است که در تجارت الکترونیکی استفاده می‌شود. این شرکت‌ها مجبورند با اشکال مختلف داده، ساختاریافته و غیرساختاریافته، سروکار داشته باشند و R نشان داده است که در این حوزه می‌تواند نقش مؤثری داشته باشد.

برای مثال، شرکت‌های تجارت الکترونیکی از R برای تجزیه‌وتحلیل محصولات فروش متقابل (Cross-selling) به مشتریان خود استفاده می‌کنند. در فروش متقابل (Cross-selling) محصولات اضافی را به مشتری پیشنهاد می‌کنیم که مکمل خرید اصلی آنان است. این نوع پیشنهادها و توصیه‌ها با کمک R تحلیل می‌شوند.

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

کدام شرکت‌های معروف دنیا از R‌ استفاده می‌کنند؟

در بخش قصد داریم با تعدادی از شرکت‌های بزرگ دنیا که زبان برنامه‌نویسی R را به کار برده‌اند آشنا شویم.

  • فیس‌بوک (Facebook) از R برای به‌روزرسانی وضعیت (Status) و نمودار شبکه اجتماعی خود استفاده می‌کند.
  • گوگل (Google) از R برای محاسبه میزان بازگشت سرمایه (ROI)‌ در کمپین‌های تبلیغاتی و پیش‌بینی فعالیت اقتصادی و هم‌چنین بهبود کارایی تبلیغات آنلاین استفاده می‌کند.
  • مایکروسافت (Microsoft) از R برای سرویس اتصال کاربران (Matchmaking service)‌ استفاده می‌کند. با استفاده از این سرویس بازیکنان، براساس اطلاعات‌شان، در یک گروه قرار می‌گیرند تا با هم بازی کنند؛ علاوه‌براین، مایکروسافت (Microsoft) از R‌ به‌عنوان یک ابزار آماری در فریم‌ورک یادگیری ماشین Azure (Azure ML Framework) استفاده می‌کند.
  • R بخشی از جعبه‌ابزار علم داده توییتر (Twitter’s Data Science toolbox) برای مدل‌سازی‌های آماری پیچیده است.

برای آشنایی با زبان برنامه‌نویسی پایتون این مطلب را مطالعه کنید:

با زبان برنامه نویسی پایتون آشنا شوید!

جمع‌بندی مطالب گفته‌شده درباره زبان R

در این مطلب زبان برنامه‌نویسی R را معرفی کردیم، تاریخچه‌ی کوتاهی از آن را بررسی کردیم و با ویژگی‌های خاص و مزایا و معایب آن آشنا شدیم. دیدیم که این زبان کاربردهای متعددی را در حوزه‌های مختلف دارد و حتی بسیاری از شرکت‌های بزرگ دنیا از آن استفاده می‌کنند. به‌طور خلاصه می‌توان گفت که R ابزاری عالی برای کاوش و تجزیه‌وتحلیل داده‌هاست و به‌دلیل نحو ساده‌ای که دارد، می‌تواند گزینه خوبی برای تازه‌واردان دنیای علم داده یا دیتا ساینس باشد.

یادگیری دیتا ساینس با پایتون در کلاس‌های آنلاین آموزش علم داده کافه‌تدریس

اگر به یادگیری علم داده یا دیتا ساینس علاقه‌مندید، کلاس‌های آنلاین آموزش علم داده کافه‌تدریس به شما کمک می‌کند تا از هر نقطه‌ی جغرافیایی به جامع‌ترین و به‌روزترین آموزش دیتا ساینس دسترسی داشته باشید. ازجمله سرفصل‌های آموزشی دوره‌های علم داده کافه‌تدریس آموزش زبان برنامه‌نویسی پایتون است.

کلاس‌های آنلاین آموزش علم داده کافه‌تدریس در دوره‌های مقدماتی و پیشرفته برگزار می‌شود و در آن‌ها آموزش زبان برنامه‌نویسی پایتون هم وجود دارد. علاوه بر آن، کافه‌تدریس در قالب دوره‌ای تکمیلی دوره‌ی تخصصی آموزش زبان برنامه‌نویسی پایتون برای علم داده نیز برگزار می‌کند.

برای آشنایی با کلاس‌های آنلاین آموزش علم داده کافه‌تدریس و همین‌طور کلاس آنلاین زبان برنامه‌نویسی پایتون برای علم داده و همچنین مشاوره‌ی رایگان برای شروع یادگیری روی این لینک کلیک کنید:

کلاس‌های آنلاین علم داده کافه‌تدریس

هفت‌خوان: مطالعه کن، نظر بده، جایزه بگیر!

هفت‌خوان مسابقه‌ی وبلاگی کافه‌تدریس است. شما با پاسخ به چند پرسش درباره‌ی مطلبی که همین حالا مطالعه کرده‌اید، فرصت شرکت در قرعه‌کشی جایزه نقدی و کلاس رایگان کافه‌تدریس را پیدا خواهید کرد.

جوایز هفت‌خوان

  • ۱,۵۰۰,۰۰۰ تومان جایزه نقدی
  • ۳ کلاس رایگان ۵۰۰,۰۰۰ تومانی

پرسش‌های مسابقه

برای شرکت در هفت‌خوان کافه‌تدریس در کامنت همین مطلب به این پرسش‌ها پاسخ دهید:

  • زبان R برای چه کاربردهایی مناسب است؟ دو مورد را نام ببرید.
  • یکی از ویژگی‌های منحصر به فرد زبان برنامه‌نویسی R چیست؟
  • یک شرکت معروف که از زبان R استفاده می‌کند را نام ببرید.

هفت‌خوان‌پلاس

برای بالابردن شانس‌تان می‌توانید این مطلب را هم مطالعه کنید و به پرسش‌های آن پاسخ دهید:

آموزش Google Colab برای دانشمندان داده