منبع اصلی نوشتار زیر در این لینک قرار دارد

انواع ساختارهای داده‌ در R، بخش اول، بردارها

بردارها

بردار تقریبا پایه‌ای‌ترین ساختار داده در 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 بنویسید که روی عناصر یک بردار به ترتیب یک سری عملیات انجام دهد حلقه باید از ۰ شروع شود.