آرایه در زبان R اشیای دادهای هستند که میتوانند دادهها را در بیش از دو بُعد ذخیره کنند. برای مثال، اگر یک آرایه با ابعاد (2, 3, 4) بسازیم، در واقع ۴ ماتریس مستطیلی ایجاد میشود که هر کدام شامل ۲ سطر و ۳ ستون هستند. نکته مهم این است که آرایهها تنها میتوانند دادههایی از یک نوع (data type) ذخیره کنند.
ایجاد آرایه در زبان R
برای ایجاد آرایه از تابع array()
استفاده میکنیم. این تابع یک یا چند بردار (vector) را بهعنوان ورودی میگیرد و با استفاده از مقادیر پارامتر dim آرایه را میسازد.
مثال
کد زیر یک آرایه شامل دو ماتریس ۳×۳ ایجاد میکند که هر کدام دارای ۳ سطر و ۳ ستون هستند:
1 2 3 4 5 6 7 |
# ایجاد دو بردار با طولهای متفاوت vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) # ساخت آرایه با استفاده از این بردارها result <- array(c(vector1,vector2), dim = c(3,3,2)) print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
, , 1 [,1] [,2] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [,1] [,2] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 |
نامگذاری سطرها، ستونها و ماتریسها
میتوانیم برای سطرها، ستونها و حتی هر ماتریس موجود در آرایه نام تعیین کنیم. این کار با استفاده از پارامتر dimnames انجام میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# ایجاد دو بردار با طولهای متفاوت 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") # ساخت آرایه با نامگذاری ابعاد result <- array(c(vector1,vector2), dim = c(3,3,2), dimnames = list(row.names, column.names, matrix.names)) print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
, , 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 |
دسترسی به عناصر آرایه در زبان R
در زبان R میتوانیم عناصر آرایه را مانند ماتریسها و بردارها با استفاده از اندیسدهی فراخوانی کنیم. در مثال زیر، یک آرایه سهبعدی ایجاد شده و دستورات مختلفی برای دسترسی به بخشهای آن نوشته شده است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# ایجاد دو بردار با طولهای متفاوت 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") # ساخت آرایه با نامگذاری ابعاد result <- array(c(vector1,vector2), dim = c(3,3,2), dimnames = list(row.names, column.names, matrix.names)) # چاپ سطر سوم از ماتریس دوم print(result[3,,2]) # چاپ عنصری در سطر اول و ستون سوم از ماتریس اول print(result[1,3,1]) # چاپ کل ماتریس دوم print(result[,,2]) |
1 2 3 4 5 6 7 |
COL1 COL2 COL3 3 12 15 [1] 13 COL1 COL2 COL3 ROW1 5 10 13 ROW2 9 11 14 ROW3 3 12 15 |
دستکاری عناصر آرایه
از آنجا که آرایه از چندین ماتریس تشکیل شده است، میتوانیم عملیات ریاضی را با انتخاب ماتریسها یا عناصر خاص اجرا کنیم. در مثال زیر دو ماتریس انتخاب شده و جمع زده میشوند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ایجاد بردارها و آرایه اول vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) array1 <- array(c(vector1,vector2), dim = c(3,3,2)) # ایجاد بردارها و آرایه دوم 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)) # انتخاب ماتریس دوم از هر آرایه matrix1 <- array1[,,2] matrix2 <- array2[,,2] # جمع دو ماتریس result <- matrix1 + matrix2 print(result) |
1 2 3 4 |
[,1] [,2] [,3] [1,] 10 20 26 [2,] 18 22 28 [3,] 6 24 30 |
محاسبات روی عناصر آرایه
برای انجام محاسبات روی ابعاد مختلف یک آرایه میتوان از تابع apply() استفاده کرد.
ساختار کلی تابع
1 |
apply(x, margin, fun) |
توضیح پارامتر ها:
-
x: آرایه ورودی
-
margin: بعدی که تابع روی آن اعمال میشود (۱ برای سطرها، ۲ برای ستونها و …)
-
fun: تابعی که باید روی دادهها اعمال شود (مثل sum، mean و …)
مثال
1 2 3 4 5 6 7 8 9 |
# ایجاد آرایه vector1 <- c(5,9,3) vector2 <- c(10,11,12,13,14,15) new.array <- array(c(vector1,vector2), dim = c(3,3,2)) print(new.array) # محاسبه مجموع سطرها در کل ماتریسها result <- apply(new.array, c(1), sum) print(result) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
, , 1 [,1] [,2] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 , , 2 [,1] [,2] [,3] [1,] 5 10 13 [2,] 9 11 14 [3,] 3 12 15 [1] 56 68 60 |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۶ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++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
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس