بردارها (Vectors) ابتداییترین اشیای داده در R هستند و شش نوع بردار اتمی وجود دارد. بردار ها شامل منطقی (logical)، عدد صحیح (integer)، عدد اعشاری (double)، مختلط (complex)، کاراکتر (character) و خام (raw) می باشند.
ساخت بردار در زبان R
بردار تکعضوی
حتی اگر در R فقط یک مقدار وارد کنید، آن مقدار به یک بردار با طول ۱ تبدیل میشود و به یکی از انواع بردارهای بالا تعلق دارد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# بردار اتمی از نوع کاراکتر print("abc"); # بردار اتمی از نوع اعشاری (double) print(12.5) # بردار اتمی از نوع عدد صحیح (integer) print(63L) # بردار اتمی از نوع منطقی (logical) print(TRUE) # بردار اتمی از نوع مختلط (complex) print(2+3i) # بردار اتمی از نوع خام (raw) print(charToRaw('hello')) |
1 2 3 4 5 6 |
[1] "abc" [1] 12.5 [1] 63 [1] TRUE [1] 2+3i [1] 68 65 6c 6c 6f |
بردار چندعضوی
استفاده از عملگر دونقطه (colon operator) برای دادههای عددی
1 2 3 4 5 6 7 8 9 10 11 |
# ایجاد دنبالهای از 5 تا 13 v <- 5:13 print(v) # ایجاد دنبالهای از 6.6 تا 12.6 v <- 6.6:12.6 print(v) # اگر آخرین مقدار خارج از دنباله باشد، حذف میشود v <- 3.8:11.4 print(v) |
1 2 3 |
[1] 5 6 7 8 9 10 11 12 13 [1] 6.6 7.6 8.6 9.6 10.6 11.6 12.6 [1] 3.8 4.8 5.8 6.8 7.8 8.8 9.8 10.8 |
استفاده از تابع seq()
برای ایجاد دنباله
1 2 |
# ایجاد بردار از 5 تا 9 با گام 0.4 print(seq(5, 9, by = 0.4)) |
1 |
[1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0 |
استفاده از تابع c()
برای ترکیب عناصر
در صورتی که یکی از عناصر بردار از نوع کاراکتر باشد، سایر عناصر (عددی یا منطقی) نیز به صورت خودکار به کاراکتر تبدیل میشوند.
1 2 3 |
# تبدیل خودکار مقادیر منطقی و عددی به کاراکتر s <- c('apple','red',5,TRUE) print(s) |
1 |
[1] "apple" "red" "5" "TRUE" |
دسترسی به عناصر بردار در زبان R
عناصر یک بردار با استفاده از اندیسگذاری (Indexing) قابل دسترسی هستند. برای این کار از کروشهها [ ]
استفاده میشود. در R اندیسها از عدد ۱ شروع میشوند. اگر مقدار منفی در اندیس بدهید، آن عنصر از خروجی حذف میشود. همچنین میتوان از مقادیر TRUE، FALSE یا ۰ و ۱ برای اندیسگذاری استفاده کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# دسترسی به عناصر بردار با استفاده از موقعیت t <- c("Sun","Mon","Tue","Wed","Thurs","Fri","Sat") u <- t[c(2,3,6)] print(u) # دسترسی به عناصر بردار با اندیسگذاری منطقی v <- t[c(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)] print(v) # دسترسی با اندیس منفی (حذف عناصر مشخصشده) x <- t[c(-2,-5)] print(x) # دسترسی با اندیسگذاری 0 و 1 y <- t[c(0,0,0,0,0,0,1)] print(y) |
1 2 3 4 |
[1] "Mon" "Tue" "Fri" [1] "Sun" "Fri" [1] "Sun" "Tue" "Wed" "Fri" "Sat" [1] "Sun" |
دستکاری بردارها
محاسبات ریاضی روی بردارها
دو بردار با طول یکسان میتوانند جمع، تفریق، ضرب یا تقسیم شوند. نتیجه نیز یک بردار خواهد بود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# ایجاد دو بردار v1 <- c(3,8,4,5,0,11) v2 <- c(4,11,0,8,1,2) # جمع بردار add.result <- v1+v2 print(add.result) # تفریق بردار sub.result <- v1-v2 print(sub.result) # ضرب بردار multi.result <- v1*v2 print(multi.result) # تقسیم بردار divi.result <- v1/v2 print(divi.result) |
1 2 3 4 |
[1] 7 19 4 13 1 13 [1] -1 -3 4 -3 -1 9 [1] 12 88 0 40 0 22 [1] 0.7500000 0.7272727 Inf 0.6250000 0.0000000 5.5000000 |
بازیافت عناصر بردار (Vector Recycling)
اگر عملیات ریاضی روی دو بردار با طولهای متفاوت انجام شود، عناصر بردار کوتاهتر به طور خودکار تکرار (recycle) میشوند تا طول هر دو برابر شود.
1 2 3 4 5 6 7 8 9 |
v1 <- c(3,8,4,5,0,11) v2 <- c(4,11) # بردار دوم تبدیل میشود به: c(4,11,4,11,4,11) add.result <- v1+v2 print(add.result) sub.result <- v1-v2 print(sub.result) |
1 2 |
[1] 7 19 8 16 4 22 [1] -1 -3 0 -6 -4 0 |
مرتبسازی عناصر بردار
عناصر یک بردار با استفاده از تابع sort()
قابل مرتبسازی هستند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
v <- c(3,8,4,5,0,11, -9, 304) # Sort the elements of the vector. sort.result <- sort(v) print(sort.result) # Sort the elements in the reverse order. revsort.result <- sort(v, decreasing = TRUE) print(revsort.result) # Sorting character vectors. v <- c("Red","Blue","yellow","violet") sort.result <- sort(v) print(sort.result) # Sorting character vectors in reverse order. revsort.result <- sort(v, decreasing = TRUE) print(revsort.result) |
1 2 3 4 |
[1] -9 0 3 4 5 8 11 304 [1] 304 11 8 5 4 3 0 -9 [1] "Blue" "Red" "violet" "yellow" [1] "yellow" "violet" "Red" "Blue" |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۶ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس