آرایه ها در زبان برنامه نویسی R به زبان ساده
آرایه نوعی شیء داده در زبان برنامه نویسی R است که می تواند داده را در بیش از دو بعد ذخیره کند. برای مثال- اگر یک آرایه از ابعاد (۲,۳,۴) را ایجاد کنیم؛ سپس این آرایه می تواند ۴ ماتریس مستطیلی ایجاد می کند که هر یک از آنها ۲ ردیف و ۳ ستون دارد. آرایه ها فقط نوع داده ها را می توانند ذخیره کنند.
یک آرایه با استفاده از تابع ()Array ایجاد شده است. این آرایه بردارها را به عنوان ورودی اتخاذ می کند و برای ایجاد آرایه؛ از مقادیری استفاده می کند که پارامتر dim هستند.
مثال
مثال زیر یک آرایه از ماتریس های ۳ را ایجاد می کند که هر یک ۳ ردیف و ۳ ستون دارد.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2))
print(result)
زمانی که کدبالا را اجرا می کنیم؛ نتایج زیر ایجاد می شود:
, , ۱
[,۱] [,۲] [,۳]
[۱,] ۵ ۱۰ ۱۳
[۲,] ۹ ۱۱ ۱۴
[۳,] ۳ ۱۲ ۱۵
, , ۲
[,۱] [,۲] [,۳]
[۱,] ۵ ۱۰ ۱۳
[۲,] ۹ ۱۱ ۱۴
[۳,] ۳ ۱۲ ۱۵
نام گذاری ردیف ها و ستون ها
ما می توانیم به ردیف ها، ستون ها و ماتریس های درون یک آرایه؛ با استفاده از پارامتر dimnames نام مورد نظرمان را اختصاص دهیم.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c(“COL1″,”COL2″,”COL3”)
row.names <- c(“ROW1″,”ROW2″,”ROW3”)
matrix.names <- c(“Matrix1″,”Matrix2”)
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,column.names,
matrix.names))
print(result)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر ایجاد می شود:
, , Matrix1
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
, , Matrix2
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
دستیابی به اعضای آرایه ها
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
column.names <- c(“COL1″,”COL2″,”COL3”)
row.names <- c(“ROW1″,”ROW2″,”ROW3”)
matrix.names <- c(“Matrix1″,”Matrix2”)
# Take these vectors as input to the array.
result <- array(c(vector1,vector2),dim = c(3,3,2),dimnames = list(row.names,
column.names, matrix.names))
# Print the third row of the second matrix of the array.
print(result[3,,2])
# Print the element in the 1st row and 3rd column of the 1st matrix.
print(result[1,3,1])
# Print the 2nd Matrix.
print(result[,,2])
زمانی که کد بالا را اجرا کنیم؛ نتیجه زیر به دست می آید:
COL1 COL2 COL3
۳ ۱۲ ۱۵
[۱] ۱۳
COL1 COL2 COL3
ROW1 5 10 13
ROW2 9 11 14
ROW3 3 12 15
به کار گرفتن اعضای آرایه
همان طور که آرایه از ماتریس ها با ابعاد مختلفی ساخته می شوند؛ عملیات روی عناصر با دستیابی به اعضای ماتریس انجام می شود.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
array1 <- array(c(vector1,vector2),dim = c(3,3,2))
# Create two vectors of different lengths.
vector3 <- c(9,1,0)
vector4 <- c(6,0,11,3,14,1,2,6,9)
array2 <- array(c(vector1,vector2),dim = c(3,3,2))
# create matrices from these arrays.
matrix1 <- array1[,,2]
matrix2 <- array2[,,2]
# Add the matrices.
result <- matrix1+matrix2
print(result)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر را به دست می آوریم:
[,۱] [,۲] [,۳]
[۱,] ۱۰ ۲۰ ۲۶
[۲,] ۱۸ ۲۲ ۲۸
[۳,] ۶ ۲۴ ۳۰
محاسبات روی اعضای آرایه
با استفاده از تابع ()apply ما می توانیم محاسباتی را روی اعضای یک آرایه انجام دهیم.
سینتکس
apply(x, margin, fun)
پارامترهایی که در کد بالا می نویسیم به شرح زیر هستند:
- x یک آرایه می باشد.
- margin نام مجموعه داده های استفاده شده می باشد.
- fun تابعی است که باید به اعضای یک آرایه اعمال شود.
مثال
در کد نویسی زیر ما از تابع ()apply استفاده می کنیم تا جمع عناصر موجود در ردیف های تمامی ماتریس های موجود در یک آرایه را محاسبه کنیم.
# Create two vectors of different lengths.
vector1 <- c(5,9,3)
vector2 <- c(10,11,12,13,14,15)
# Take these vectors as input to the array.
new.array <- array(c(vector1,vector2),dim = c(3,3,2))
print(new.array)
# Use apply to calculate the sum of the rows across all the matrices.
result <- apply(new.array, c(1), sum)
print(result)
زمانی که کد بالا را اجرا کنیم؛ به نتایج زیر دست می یابیم:
, , ۱
[,۱] [,۲] [,۳]
[۱,] ۵ ۱۰ ۱۳
[۲,] ۹ ۱۱ ۱۴
[۳,] ۳ ۱۲ ۱۵
, , ۲
[,۱] [,۲] [,۳]
[۱,] ۵ ۱۰ ۱۳
[۲,] ۹ ۱۱ ۱۴
[۳,] ۳ ۱۲ ۱۵
[۱] ۵۶ ۶۸ ۶۰