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