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

القوائم بلغة R

القائمة هي مجموعة من الأجسام في لغة R، يمكن استخدامها لتخزين أنواع مختلفة من البيانات، مثل الأرقام، النصوص، الفيكتورات، وقوائم أخرى، وبالطبع يمكن أن تحتوي أيضًا على matrices والوظائف.

استخدام دالة list() في لغة R لإنشاء القوائم.

كما في المثال التالي، قمنا بإنشاء قائمة تحتوي على نصوص، فيكتورات، وأرقام:

list_data <- list("w3codebox", "google", c(11,22,33), 123, 51.23, 119.1)
print(list_data)

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

[[1]]
[1] "w3codebox"
[[2]]
[1] "google"
[[3]]
[1] 11 22 33
[[4]]
[1] 123
[[5]]
[1] 51.23

يمكننا استخدام دالة names() لتسمية عناصر القائمة:

# القائمة تحتوي على فيكتورات ومatrice و القوائم
list_data <- list(c("جوجل", "w3codebox", "تاو博会"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# تسمية عناصر القائمة
names(list_data) <- c("المواقع", "العدد", "القوائم")
# عرض القائمة
print(list_data)

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

$Sites
[1] "جوجل" "w3codebox" "تاو博会"
$Numbers
     [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$Lists
$Lists[[1]]
[1] "w3codebox"
$Lists[[2]]
[1] 12.3

وصول القائمة

يمكن الوصول إلى عناصر القائمة باستخدام المؤشر، إذا كان يتم استخدامه names() بعد تسمية الدالة، يمكننا الوصول إليها باستخدام الاسم المطلق:

# القائمة تحتوي على فيكتورات ومatrice و القوائم
list_data <- list(c("جوجل", "w3codebox", "تاو博会"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# تسمية عناصر القائمة
names(list_data) <- c("المواقع", "العدد", "القوائم")
# عرض القائمة
print(list_data[1])
# الوصول إلى العنصر الثالث في القائمة
print(list_data[3])
# الوصول إلى عنصر الفيكتور الأول
print(list_data$Numbers)

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

$Sites
[1] "جوجل" "w3codebox" "تاو博会"
$Lists
$Lists[[1]]
[1] "w3codebox"
$Lists[[2]]
[1] 12.3
     [,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

تعديل عناصر القائمة

يمكننا إجراء عمليات إضافة، إزالة، وتحديث القوائم كما في المثال التالي:

# القائمة تحتوي على فيكتورات ومatrice و القوائم
list_data <- list(c("جوجل", "w3codebox", "تاو博会"), matrix(c(1,2,3,4,5,6), nrow = 2),
   list("w3codebox", 12.3))
# تسمية عناصر القائمة
names(list_data) <- c("المواقع", "العدد", "القوائم")
# إضافة عنصر
list_data[4] <- "عنصر جديد"
print(list_data[4])
# إزالة العنصر
list_data[4] <- NULL
# إزالة الناتج سيكون NULL
print(list_data[4])
# تحديث العنصر
list_data[3] <- "أنا أستبدل العنصر الثالث"
print(list_data[3])

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

[[1]]
[1] "عنصر جديد"
$<NA>
NULL
$Lists
[1] "أنا أستبدل العنصر الثالث"

دمج القوائم

يمكننا استخدام دالة c() لدمج قوائم متعددة إلى قائمة واحدة:

# إنشاء قائمتين
list1 <- list(1,2,3)
list2 <- list("Google","w3codebox","Taobao")
# دمج القوائم
merged.list <- c(list1,list2)
# عرض القائمة المدمجة
print(merged.list)

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

[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] "Google"
[[5]]
[1] "w3codebox"
[[6]]
[1] "Taobao"

تحويل القائمة إلى مجموعة

لتحويل القائمة إلى مجموعة يمكن استخدام دالة unlist() لتحويل القائمة إلى مجموعة، مما يمكننا من القيام بالعمليات الحسابية بسهولة:

# إنشاء قائمة
list1 <- list(1:5)
print(list1)
list2 <- list(10:14)
print(list2)
# تحويل القائمة إلى مجموعة
v1 <- unlist(list1)
v2 <- unlist(list2)
print(v1)
print(v2)
# جمع مجموعتين
result <- v1+v2
print(result)

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

[[1]]
[1] 1 2 3 4 5
[[1]]
[1] 10 11 12 13 14
[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19