فهرست
چنانچه دیدیم، بردار را در R، مجموعهای یک بعدی از مقدارهای همنوع با طول مشخص است. میتوان ماتریس را نیز به صورت مشابه تعریف کرد. منظور از ماتریس در R مجموعهای از مقدارهای همنوع در یک ساختار دو بعدی با تعداد ردیفها و ستونهای مشخص است.
یک بردار در R را میتوان به سه صورت به ماتریس تبدیل کرد:
- اضافه کردن ویژگی بُعد به بردار با تابع
dim()
- استفاده از تابع
matrix()
- چسباندن بردارهای هماندازه به یکدیگر در قالب ستونها یا سطرهای ماتریس با توابع
rbind()
وcbind()
اضافه کردن ویژگیِ بُعد به بردار با dim
ماتریس را در R میتوان با تعریف ابعاد برای یک بردار تعریف کرد. مثلا اگر x
یک بردار به طور ۱۲ باشد، میتوان با تخصیص مقدار c(3, 4)
به dim(x)
، آن را به یک ماتریس ۴*۳ تبدیل کرد.
x = 11:22
dim(x) = c(3, 4)
print(x)
. [,1] [,2] [,3] [,4]
[1,] 11 14 17 20
[2,] 12 15 18 21
[3,] 13 16 19 22
ماتریس یک نوع دادۀ تعریفشده در R است که عملاً از روی بردار ساخته میشود.
class(x)
matrix
- کم و بیش میتوان گفت ماتریس در محیط R از روی بردار ساخته میشود، در نتیجه مقادیر ماتریس نیز مانند بردار همگی از یک نوع هستند.
استفاده از تابع matrix
روش دیگری که میتوان به وسیله آن یک ماتریس را تعریف کرد استفاده از تابع matrix
است. این تابع یک بردار را به عنوان ورودی دریافت میکند و با دریافت مقادیر nrow
و ncol
تعداد سطرها و ستونهای آن را مشخص میکند.
x = 21:32
y = matrix(x, nrow = 3, ncol = 4)
print(y)
. [,1] [,2] [,3] [,4]
[1,] 21 24 27 30
[2,] 22 25 28 31
[3,] 23 26 29 32
همانطور که مشاهده میشود بردار x
در ستونهای ماتریس y
قرار گرفته است. اگر بخواهیم بردار در سطرهای ماتریس قرار بگیرد باید مقدار ورودی byrow
را مساوی T
قرار دهیم. این مقدار به صورت پیشفرض مساوی F
است.
x = 31:42
y = matrix(x, nrow = 3, ncol = 4, byrow = T)
print(y)
. [,1] [,2] [,3] [,4]
[1,] 31 32 33 34
[2,] 35 36 37 38
[3,] 39 40 41 42
به هم چسباندنِ بردارها با rbind و cbind
با چسباندن بردارهای هماندازه به صورت ستونی یا سطری به یکدیگر میتوان یک ماتریس ایجاد کرد. این کار با استفاده از توابع rbind
و cbind
قابل انجام است. در اولی بردارها به عنوان سطر و در دومی بردارها به عنوان ستون در ماتریس ظاهر میشوند
v1 = 1:7
v2 = 8:14
mr = rbind(v1, v2)
mc = cbind(v1, v2)
print(mr)
print(mc)
. [,1] [,2] [,3] [,4] [,5] [,6] [,7]
v1 1 2 3 4 5 6 7
v2 8 9 10 11 12 13 14
v1 v2
[1,] 1 8
[2,] 2 9
[3,] 3 10
[4,] 4 11
[5,] 5 12
[6,] 6 13
[7,] 7 14
همانطور که در موارد بالا مشاهده میکنید نام بردارهایی که برای ایجاد ماتریس به کار گرفته شده هنوز در ماتریس قابل مشاهده است و میتوان در فراخوانی مقادیر ماتریس آنها را به کار برد. نام سطرها و ستونهای ماتریس را میتوان با توابع rownames
و colnames
فراخواند و در صورت لزوم تغییر داد.
rownames(mr)
[1] "v1" "v2"
colnames(mc)
[1] "v1" "v2"
مثلا اگر بخواهیم اسم ستونهای ماتریس را از v1
و v2
به c1
و c2
تغییر دهید میتوانید به صورت زیر عمل کنید.
colnames(mc) = c('c1', 'c2')
colnames(mc)
[1] "c1" "c2"
به عنوان نمونه، در پردازش تصویر، یک عکس از تعدادی پیکس در صفحه دو بعدی تشکیل شده و به هر پیکسل سه مقدار برای رنگهای قرمز Red، سبز Green و آبی Blue اختصاص داده میشود (به این روش برای ذخیره و نگهداری تصویر RGB میگویند). برای کار با چنین دادهای در R، نوع ویژهای به نام آرایه array وجود دارد که میتواند چیزی شبیه ماتریس سه بعدی را شبیهسازی کند و دادههای مورد نظر را ذخیره و نگهداری کند.
در آرایه نیز مانند بردار و ماتریس تمامی مقادیر از یک نوع هستند، مثلا همگی numeric، character یا ... هستند.