داده ها در R

قبل از اینکه در مورد هر یک از انواع داده ها صحبت کنیم، تنظیمات مربوط به محیط کاری جاری (Working Directory) را باید بدانیم.  

برای اطلاع از محیط جاری از دستور ()getwd استفاده می کنیم. نتیجه این تابع یک رشته کاراکتری خواهد بود. برای تغییر محیط کاری به دایرکتوری مورد نظر نیز کافیست آنرا به تابع ()setwd بدهیم.

همچنین در R برای نصب یک پکیج  از تابع  ()install.packages استفاده می کنیم. پس از اجرای این تابع در صورت لزوم بسته مورد نظر از سرور اصلی دانلود و نصب می شود. در صورتیکه نصب بسته نیاز به پیش نیازهایی داشته باشد آنها نیز به صورت خودکار دانلود و نصب می شوند. برای فعالسازی یک بسته نصب شده نیز از تابع ()library استفاده می کنیم. نصب یک بسته روی R فقط یک بار انجام می شود اما در هر برنامه برای استفاده از توابع آن بسته باید بسته را فعال کنید.

داده های آماده در زبان R

 در زبان R تعدادی داده آماده برای استفاده در مثال ها قرار داده شده است. مانند cars، iris، trees و … . فهرست کامل این داده ها را با استفاده از تابع ()data می توانیم ببینیم. برای مشاهده فهرست داده های همراه یک پکیج نیز این تابع را به همراه نام پکیج فراخوانی می کنیم.  (“data (package=”pkg.name

برای نمایش ۶ ردیف ابتدایی یا انتهایی از توابع head و tail استفاده می شود. اما اگر بیش از ۶ ردیف یا کمتر از آن نیاز باشد باید صراحتا قید شود.

تولید داده در R

دو نوع داده منظم و تصادفی در R می توان تولید کرد. برای تولید دنباله منظمی  از اعداد صحیح از عملگر (:) استفاده می کنیم. مثلا برای تولید اعداد ۱ تا ۱۰۰ بصورت زیر عمل می کنیم.  نتیجه این عمل یک بردار است.

عملگر (:) بر همه عملگرهای ریاضی اولویت دارد. به دو مثال زیر دقت کنید

تابع ()seq یک بردار از اعداد حقیقی تولید می کند. در این تابع چهار مقدار ابتدا (from)، انتها (to) ، فاصله بین دو عدد دنباله (by) و تعداد اعداد دنباله (length) را دریافت می کند. البته همیشه همه این چهار مقدار موجود نیستند و R بر اساس سایر مقادیر یا بر اساس پیش فرض برداری را بر می گرداند. مقادیر پیش فرض این مقادیر عدد ۱ می باشد.

تابع ()rep نیز یک بردار را به تعداد دلخواه تکرار می کند. بجای یک مقدار به عنوان تعداد تکرار می توان برداری که تعداد اعضای آن مساوی تعداد اعضای بردار اصلی است نیز معرفی کرد.

دنباله های تصادفی توسط توزیع های آماری قابل تولید است. یکی از این توابع ()rnorm است که دنباله ای از اعداد تصادفی که دارای توزیع نرمال هستند تولید می کند.

در مثال فوق برداری تصادفی به طول ۱۰ تولید شده است که دارای  توزیع نرمال هستند. این بدین معناست که اجرای مجدد همین تابع مقادیر متفاوتی تولید می کند. در خصوص توزیع های آماری و توابع مربوطه در مبحث مستقلی صحبت خواهیم کرد.

خواندن داده ها از فایل

تابع ()read.table به منظور خواندن داده ها از فایلهای متنی یا csv استفاده می شود. نام فایل را به عنوان آرگومان در هنگام فراخوانی تابع معرفی می کنیم. در صورتیکه فایل در محیط کاری جاری باشد فقط نام فایل کافیست، در غیر اینصورت مسیر فایل نیز مشخص می شود. برای راحتی از تابع تعاملی ()file.choose می توانید استفاده کنید و در پنجره ای که باز می شود فایل مورد نظر را پیدا کنید.

مقداری که تابع ()read.table بر میگرداند یک دیتا فریم است. علاوه بر نام فایل پارامتر sep مشخص می کند که داده ها با چه کاراکتری از هم جدا شده اند، پارامتر skip به تابع می گوید چند خط ابتدای فایل توضیحات است و باید از آنها صرفنظر کند. پارامتر header که یک مقدار منطقی می گیرد به تابع می گوید که آیا داده ها دارای ردیف عنوان هستند یا نه.

فایل متنی به شکل زیر درست کنید.

Author : your name
Date : 1396/11/12
Name ID Age Score
Mahdi 31243 31 A
Reza 23143 41 C
Mohammad 34323 45 B

حال در محیط R دستور زیر را اجرا کنید.

در مورد فایلهای csv نیز بهمین شکل عمل می شود با این تفاوت که مقدار پارامتر sep باید “,” تعریف شود.

زبان R به صورت مستقیم قادر به خواندن فایلهای اکسل نیست. برای خواندن یک فایل اکسل یا باید آن را به فرمت متن یا CSV تبدیل کنیم یا اینکه پکیج مربوطه را نصب کنیم.

نوشتن داده ها روی فایل

بدین منظور از تابع ()write.table استفاده می شود. برای استفاده از این تابع داده مورد نظر و نام فایل پارامترهای اصلی هستند. بعلاوه با استفاده از آرگومان منطقی  quote  که پیش فرض TRUE است، به R می گوییم هنگام ذخیره سازی نام ستونها و شماره ردیفها در فایل دور آن کوتیشن بگذارد (مقدار TRUE) یا نگذارد (مقدار FALSE). آرگومان منطقی row.names که پیش فرض TRUE است برای هر ردیف از داده ها شماره قرار می دهد. آرگومان sep فاصله بین ستون داده ها را تنظیم می کند. در صورتیکه بخواهیم فایل با فرمت csv ذخیره شود از تابع write.csv استفاده می کنیم.

مطالب مرتبط