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

آمار، علم یا بهعبارتی هنر مطالعه دادههاست. دادههایی که تقریبا با انجام هر عملی در زندگی تولید میشوند. بسیاری از مطالعات، همچنین الگوریتمهای مهم، وابسته به تحلیلی است که با دادهها میتوان به آن رسید.
رویکرد بیزی آمار که مباحث مهمی از جمله شبکههای بیزی را شامل میشود، کاربرد فراوانی در یادگیری ماشینی (Machine Learning) دارد.
امروزه بسیاری از محاسبات آماری به صورت دستی انجام نمیشود و نیازمند نرمافزارهای مناسب است. متاسفانه در بسیاری از دانشگاههای کشور به دلیل عدم شناخت درست از نرمافزارهای آزاد، تنها نرمافزارهای غیرآزادی مانند SPSS و SAS را به دانشجویان معرفی میکنند. در اینجا ما قصد داریم زبان/ نرم افزار آزادی به نام R را معرفی کنیم.
تاریخچه
زبان R زبانی کاملا آزاد و رایگان است که چندان هم با زبان S که محصولی از کمپانی AT&T بود تفاوتی ندارد. زبان R را رابرت جنتلمن و روس ایهاکا از دانشکده آمار دانشگاه اوکلند نوشتند و یک گروه همکار، باگهای اولیه نرمافزار را یافت و اولین نسخه را در سال ۲۰۰۰ منتشر کردند. امروزه این زبان محصولی از بنیاد R برای محاسبات آماری است. این بنیاد بخشی ا ز پروژه GNU بنیاد نرمافزار آزاد است. زبان R تحت مجوز GNU/GPL ارائه میشود.
این زبان کمحجم (سورسکد حدود ۳۰ مگابایت و باینری حدود ۵۰ مگابایت)، یک زبان مستقل از سیستمعامل است و سورسکد، همچنین باینری آن برای سیستمعاملهای گنو/ لینوکس، ویندوز و مک روی پایگاه وب رسمی پروژه 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 وارد کنید:
1 |
sudo pip install rpy2 |
برای مثال ما در زیر با استفاده از تابع rnorm موجود در زبان R و ماژول robjects در بسته نرمافزاری rpy2 در زبان پایتون نمونهای به حجم ۱۰۰ از توزیع نرمال میگیرم و سری زمانی آن را رسم میکنیم:
1 2 3 4 5 6 7 |
import r py2.robjects as robj ts=robj.r.plot rnorm=robj.r.rnorm ts(rnorm(100),ylab="normal random variable",- main="R in Hello world Mag!",type="l") |
که خروجی به شکل زیر را در پی خواهد داشت:
گروه توسعه R برای یادگیری و استفاده بهینه کاربران از R منابع بسیاری را تهیه کردهاند که تمام امکانات موجود در زبان را ارائه میدهد. این منابع آموزشی در پایگاه وب رسمی R، یعنی r-project.org موجود است. از طرفی هربسته R که در مخازنش ارائه میشود، دارای یک راهنمای بسته جداگانه است که به همراه بسته، ارائه میشود. تمام راهنماهای بستهها به قالب راهنماهای استاندارد R ارائه میشود که درواقع به کمک R Sweave که رابط بین لاتکس و R است، تولید میشوند و خوانایی مناسبی را برای قراردادنِ کدهای نمونه و درصورت لزوم خروجیهای آن در اختیار توسعهدهندگان قرار میدهد.
منبع: نشریه «سلام دنیا»، شماره اول – نوشته صالح صالحیزاده