بردار (Vector)

بردار مجموعه ای از عناصر داده از یک نوع (Numeric، Character، Integer، Logical، Complex) می باشد. با استفاده از تابع ()C می توان یک بردار تولید کرد.

vector

تابع typeof نوع اعضای یک بردار را برمی گرداند و تابع length تعداد اعضای آن را اعلام می کند.

بردارها با استفاده از تابع c() با یکدیگر ترکیب می شوند. در صورتیکه دو بردار دارای نوع داده متفاوت باشند اجبارا باید نوع داده ها یکسان شوند. این تبدیل به ترتیب بدین صورت می باشد. Logical- Integer- Numeric و Character. بعنوان مثال اگر یک بردار از نوع داده منطقی با یک بردار کاراکتری ترکیب شوند، نوع بردار حاصل کاراکتری خواهد بود.

در شکل فوق ابتدا یک بردار منطقی با یک بردار کاراکتری ترکیب شده است و همه عناصر آن به کاراکتری تبدیل شده است در حالیکه در ترکیب همین بردار منطقی با یک بردار عددی عناصر آن به اعداد ۰ (FALSE) و ۱  (TRUE) تبدیل شده است.

عملیات ریاضی روی بردارها

عملیات ریاضی روی بردارها بصورت عضو به عضو می باشد. به عنوان مثال زمانی که ما  برداری را در عددی ضرب می کنیم تک تک اعضای بردار در عدد ضرب می شوند.

همچنین عمل جمع، تفریق، ضرب و تقسیم نیز بین دو بردار بر روی اعضای متناظر انجام می شود. به عنوان مثال فرض کنید دو بردار a و  b به شکل زیر تعریف شده اند.

a <- c ( 1, 3, 5, 7 )

b <- c ( 1, 2, 4, 8 )

جمع این دو بردار عبارتست از برداری که هر عضو آن حاصل جمع عضوهای متناظر در دو بردار است. در مورد سایر اعمال ریاضی نیز به همین گونه عمل می شود.

قانون بازتولید (Recycling Rule)

اگر دو بردار از نظر تعداد اعضاء معادل نبودند، بردار کوچکتر به تعداد دفعاتی بازتولید می شود که اندازه آن با بردار بزرگتر برابر یا بیشتر  شود.  پس عمل ریاضی بر روی اعضای متناظر انجام می شود.

در حالتی که تعداد اعضای بردار کوچکتر با اعمال این قانون از بردار بزرگتر بیشتر می شود. بازهم به همین صورت عمل می شود با این تفاوت که  R یک پیغام هشدار نیز صادر می کند.

دسترسی به عناصر یک بردار

عناصر یک بردار با استفاده از [] می باشد. اندیس بردار از ۱ شروع می شود.

در صورتیکه اندیس خارج از محدوده تعداد اعضای بردار باشد، حاصل یک مقدار نامشخص (NA) خواهد بود.

نتیجه حاصله فقط یک مقدار از انواع پایه ای (عددی ، کاراکتری یا منطقی) نیست بلکه برداری است که بعضی از اعضای بردار را در خود جای داده است. در مثال فوق [s[3 برداری است شامل یک عضو. از این رو می توانیم از اندیس برای فیلتر کردن بخشی از اعضای بردار استفاده کرد. یعنی برای انتخاب اعضای دوم و چهارم بردار به شکل [(s[c(2,4 می نویسیم . در این حالت ترتیب اعضای انتخاب شده و حتی تکراربعضی از اعضاء در بردار نتیجه مهم نیست. علاوه بر استفاده از یک بردار می توانید محدوده ای از عناصر را برای فیلتر کردن انتخاب کنید. مثلا برای انتخاب اعضای دوم تا چهارم بردار s فیلتر به شکل [s[2:4 بکار می بریم.

 برای حذف بعضی از اعضای بردار هم از اندیس منفی استفاده می کنیم. [s[-5 برداری است شامل همه اعضای بردار s  به استثنای عضو پنجم.

توجه داشته باشید که اندیس با مقدار حقیقی به اعداد صحیح تبدیل می شود. بعنوان مثال در صورتیکه از اندیس ۳.۵۴  استفاده کنیم نتیجه حاصل مقدار بردار با اندیس ۳ خواهد بود.

همچنین برای فیلتر کردن بخشی از اعضای یک بردار می توان از یک بردار منطقی استفاده کرد. بردار حاصل فقط معادل مقادیری است که در بردار منطقی TRUE هستند. در صورتیکه طول بردار منطقی کمتر از طول بردار اصلی باشد، بر اساس قانون بازتولید (Recycling Rule) بردار منطقی تکرار می شود تا همه عناصر بردار اصلی را دربربگیرد. همچنین اگر طول بردار منطقی بزرگتر از طول بردار اصلی باشد، عضو متناظر مقادیر اضافی TRUE در بردار منطقی مقدار نامشخص (NA) می گیرند.

علاوه بر بردار منطقی برای فیلتر کردن اعضای یک بردار از شروط منطقی نیز می توان استفاده کرد، در این حالت فقط مقادیر در بردار حاصل هستند که نتیجه شرط TRUE باشد.

نامگذاری اعضای یک بردار

می توانیم اعضای یک بردار را نامگذاری کنیم و برای فیلتر کردن یا نمایش اعضای بردار از نام آنها استفاده کنیم. نامگذاری اعضای یک بردار با استفاده از تابع ()names انجام می شود.

مطالب مرتبط