برنامه‌نویسی

R آماردان آزاد

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

رویکرد بیزی آمار که مباحث مهمی از جمله شبکه‌های بیزی را شامل می‌شود، کاربرد فراوانی در یادگیری ماشینی (Machine Learning) دارد.

امروزه بسیاری از محاسبات آماری به صورت دستی انجام نمی‌شود و نیازمند نرم‌افزارهای مناسب است. متاسفانه در بسیاری از دانشگاه‌های کشور به دلیل عدم شناخت درست از نرم‌افزارهای آزاد، تنها نرم‌افزارهای غیرآزادی مانند SPSS و SAS را به دانشجویان معرفی می‌کنند. در اینجا ما قصد داریم زبان/ نرم افزار آزادی به نام R را معرفی کنیم.

تاریخچه

زبان R زبانی کاملا آزاد و رایگان است که چندان هم با زبان S که محصولی از کمپانی AT&T بود تفاوتی ندارد. زبان R را رابرت جنتلمن و روس ایهاکا از دانشکده آمار دانشگاه اوکلند نوشتند و یک گروه همکار، باگ‌های اولیه نرم‌افزار را یافت و اولین نسخه را در سال ۲۰۰۰ منتشر کردند. امروزه این زبان محصولی از بنیاد R برای محاسبات آماری است. این بنیاد بخشی ا ز پروژه GNU بنیاد نرم‌افزار آزاد است. زبان R تحت مجوز GNU/GPL ارائه می‌شود.

زبان Rاین زبان کم‌حجم (سورس‌کد حدود ۳۰ مگابایت و باینری حدود ۵۰ مگابایت)، یک زبان مستقل از سیستم‌عامل است و سورس‌کد، همچنین باینری آن برای سیستم‌عامل‌های گنو/ لینوکس، ویندوز و مک روی پایگاه وب رسمی پروژه R یعنی r-project.org و از Mirorهای بسیاری از جمله ایران واقع در دانشگاه فردوسی مشهد، در دسترس است.

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

R یک زبان اسکریپتی است. این زبان همانند پایتون خط به خط اجرا می‌شود و در صورتی که در یک خط تنها یک دستور نوشته شود نیازی به Semicolon ندارد. شرط‌ها، شرط حلقه‌ها و ورودی توابع نیز در این زبان مانند اکثر زبان‌ها، درون پرانتز نوشته می‌شود و نتیجه شرط‌ها، عملیات حلقه‌ها و متن توابع هم درون آکلاد می‌آید، تنها با این تفاوت که شمارنده حلقه‌ها در این زبان از «یک» شروع خواهد شد.

ارتباط بین R و سایر نرم‌افزارها

می‌توان بین R و بسیاری زبان‌ها ارتباط برقرار کرد که در این‌جا دو مورد از این ارتباطات، یکی ارتباط با واژه‌پرداز LaTeX و دیگری ارتباط با زبان Python را بررسی می‌کنیم:

ارتباط با Latex

ارتباط بین R و زبان واژه‌پرداز LaTeX یا همان R Sweave که یکی از موتورهای واژه‌پرداز LaTeX است، به شما این امکان را می‌دهد که با استفاده از ترکیب این دو، گزارش‌های آماری خود (گزارش‌هایی که شامل فرمول‌های آماری و کدهای R است) را پردازش کنید و با قالب PDF یا سایر قالب‌های مورد حمایت LaTeX خروجی بگیرید.

ارتباط Python با R

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

زبان Rبرای مثال ما در زیر با استفاده از تابع rnorm موجود در زبان R و ماژول robjects در بسته نرم‌افزاری rpy2 در زبان پایتون نمونه‌ای به حجم ۱۰۰ از توزیع نرمال می‌گیرم و سری زمانی آن را رسم می‌کنیم:

که خروجی به شکل زیر را در پی خواهد داشت:

زبان Rمنابعی برای یادگیری R

گروه توسعه R برای یادگیری و استفاده بهینه کاربران از R منابع بسیاری را تهیه کرده‌اند که تمام امکانات موجود در زبان را ارائه می‌دهد. این منابع آموزشی در پایگاه وب رسمی R، یعنی r-project.org موجود است. از طرفی هربسته R که در مخازنش ارائه می‌شود، دارای یک راهنمای بسته جداگانه است که به همراه بسته، ارائه می‌شود. تمام راهنماهای بسته‌ها به قالب راهنماهای استاندارد R ارائه می‌شود که درواقع به کمک R Sweave که رابط بین لاتکس و R است، تولید می‌شوند و خوانایی مناسبی را برای قراردادنِ کدهای نمونه و درصورت لزوم خروجی‌های آن در اختیار توسعه‌دهندگان قرار می‌دهد.

منبع: نشریه «سلام دنیا»، شماره اول – نوشته صالح صالحی‌زاده

فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

همچنین ببینید
بستن
دکمه بازگشت به بالا