English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

المساحات في R

arrays também são objetos em R, e R pode criar arrays unidimensionais ou multidimensionais.

arrays em R são conjuntos de tipos de dados idênticos, e o matrix que aprendemos anteriormente é na verdade um array bidimensional.

a relação entre vetores, matrizes e arrays pode ser vista na figura a seguir:

criação de arrays em R é feita usando a função array(), que usa vetores como parâmetros de entrada e pode usar dim para definir a dimensão do array.

funcão array() sintaxe formatada como follows:

array(data = NA, dim = length(data), dimnames = NULL)

شرح المعلمات:

  • data فيектор، عناصر المجموعة.

  • dim أبعاد المجموعة، بشكل افتراضي هي مجموعة أحادية البعد.

  • dimnames أسماء الأبعاد، يجب أن تكون قائمة، بشكل افتراضي لا يتم تعيين الأسماء.

في هذا المثال، نخلق مجموعة ثنائية البعد ب 3 صفوف و 3 أعمدة:

# إنشاء نقطتين طوليتين مختلفتين
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
     [,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 لتحديد أسماء الأبعاد المختلفة:

# إنشاء نقطتين طوليتين مختلفتين
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)

النتيجة الصادرة عن تنفيذ الكود أعلاه هي:

, , 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

الوصول إلى عناصر المجموعات

إذا كنت ترغب في الحصول على عنصر من المجموعة، يمكنك استخدام فهرس العمود والصف، مثل شكل الأنماط.

# إنشاء نقطتين طوليتين مختلفتين
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])

النتيجة الصادرة عن تنفيذ الكود أعلاه هي:

COL1	COL2	COL3 
   3		12		15 
[1]	13
     COL1	COL2	COL3
ROW1		5		10		13
ROW2		9		11		14
ROW3		3		12		15

العمل على عناصر المجموعات

بسبب أن المجموعات تتكون من عدة أبعاد من الماتريكس، لذا يمكننا الوصول إلى عناصر المجموعات من خلال الوصول إلى عناصر الماتريكس.

# إنشاء نقطتين طوليتين مختلفتين
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]
[1,]   10   20   26
[2,]   18   22   28
[3,]    6   24   30

إضافة إلى ذلك، يمكننا استخدام apply() يتم حساب العناصر في المصفوفة عبر الأبعاد، وفقًا للصيغة التالية:

apply(x, margin, fun)

شرح المعلمات:

  • x  المصفوفة

  • الحدود اسم البيانات

  • fun وظيفة الحساب

في هذا المثال، سنستخدم وظيفة apply() لحساب مجموع الأرقام في كل صف من الصفوف في مصفوفتين من مصفوفات النظام.

# إنشاء نقطتين طوليتين مختلفتين
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
     [,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