بردارها
بردار تقریبا پایهایترین ساختار داده در R است. بردار ساختاری است که مجموعهای از مقادیر مرتبشده به نام عنصر را در خود ذخیره میکند. یردار را میتوان معادل یک ستون در نرمافزارهایی چون اکسل و spss دانست. یک بردار میتواند هر تعداد عنصر داشته باشد با این شرط که نوع تمام عناصر یکسان باشد، به عنوان مثال، یک بردار نمیتواند هم شامل عدد و هم شامل متن باشد. برای تشخیص نوع عناصر یک بردار میتوانید از دستور زیر استفاده کنید:
typeof()
بردارها در R چندین نوع دارند که خوب است بعضی از آنها را با هم مرور کنیم:
Integer: برداری که فقط شامل اعداد صحیح است.
Double: برداری که شامل اعداد صحیح و اعشاردار میشود.
Character: برداری که شامل متن است.
logical: شامل true و false
complex: اعداد مختلط
NA برداری که هیچ مقداری در آن نیست.
دستور c در R چند عنصر را به هم میچسباند و یک بردار تشکیل میدهد.مثال:
> m <- c(2,4,5,8,9) > m [1] 2 4 5 8 9 > class(m) [1] "numeric" > typeof(m) [1] "double"
به این دستور چند کاراکتر و چند عدد میدهیم و نوع بردار به وجود آمده را بررسی میکنیم:
> m <- c("c",2:14) > typeof(m) [1] "character"
عبارت ۲:۱۴ دنبالهی اعداد ۲ تا ۱۴ را به وجود میآورد. همانطور که میبینید ما به دستور یک کاراکتر و ۱۲ عدد دادهایم تا یک بردار تحویل ما دهد و بردار حاصل، برداری از نوع کاراکتر شده است، یعنی R اعدادی را که دریافت کرده را به عنوان کاراکتر در بردار قرار داده است.
گاهی احتیاج دارید که در R توالی خاصی از اعداد را در یک بردار داشته باشید. عملگر : محدود است و فقط دنبالهای از اعداد با فاصله یک واحد از همدیگر ایجاد میکند. دو دستور seq و rep در این مواقع بسیار کاربردی هستند.دستور seq دنبالهی خاضی از اعداد با فاصلهی دلخواه شما را ایجاد میکندو این دستور به ترتیب نقطهی شروع، نقطهی پایان و فاصله د, عضو دنباله را از شما میگیرد. مثال:
> m <- seq(1,5,0.25) > m [1] 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00
دستور rep ترکیب خاصی از اعداد را از شما میکیرد و آنها را در یک بردار تکرار میکنید. چند مثال از این دستور:
> m <- rep(1:5,3) > m [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 > m <- rep(c(2,3,4),2) > m [1] 2 3 4 2 3 4 > m <- rep(c(2,3,4),c(2,3,4)) > m [1] 2 2 3 3 3 4 4 4 4
اعداد به صورت تکی در R در واقع بردارهایی با یک عنصر هستند. نکته بسیار مهم دیگری که لازم به ذکر است این است که R برخلاف بسیاری از زبانهای برنامهنویسی دیگر، عناصر درون یک شئ(مثلا یک بردار) را از شماره یک شروع به شمردن میکند (بر خلاف زبان c که از صفر شروع به شمردن میکند.) به همین دلیل وقتی میخواهید حلقهای در R بنویسید که روی عناصر یک بردار به ترتیب یک سری عملیات انجام دهد حلقه باید از ۰ شروع شود.