Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إنشاء القوائم

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 71 من 78.

المتجهات (Vectors) قوية، ولكن لديها قيد واحد: يجب أن تكون جميع العناصر من نفس النوع. عندما تحتاج إلى تخزين أنواع مختلفة من البيانات معاً، توفر لغة R القوائم (lists).

القائمة هي هيكل بيانات مرن يمكنه احتواء عناصر من أنواع مختلفة، بما في ذلك الأرقام، والحروف، والقيم المنطقية، وحتى المتجهات أو القوائم الأخرى. يمكنك إنشاء قائمة باستخدام الدالة list():

my_list <- list(42, "hello", TRUE)
print(my_list)

المخرجات:

[[1]]
[1] 42

[[2]]
[1] "hello"

[[3]]
[1] TRUE

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

my_list <- list(c(1, 2, 3), "text", c(TRUE, FALSE))
print(my_list)

المخرجات:

[[1]]
[1] 1 2 3

[[2]]
[1] "text"

[[3]]
[1]  TRUE FALSE

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

challenge icon

التحدي

سهل

ستتلقى ثلاثة أسطر من المدخلات:

  1. قيمة عددية (مثلاً، 99.99)
  2. قيمة نصية (مثلاً، Premium Member)
  3. قيمة منطقية كنص: إما TRUE أو FALSE (مثلاً، TRUE)

قم بإجراء العمليات التالية:

  1. اقرأ المدخلات الثلاثة وقم بتحويلها إلى أنواعها المناسبة (numeric، و character، و logical)
  2. أنشئ قائمة (list) تحتوي على هذه القيم الثلاث بالترتيب: القيمة العددية أولاً، ثم النص، ثم القيمة المنطقية
  3. أنشئ قائمة ثانية تحتوي على متجه (vector) من ثلاثة أرقام c(10, 20, 30) كعنصر أول، والنص "data" كعنصر ثاني
  4. اطبع القائمة الأولى
  5. اطبع القائمة الثانية

على سبيل المثال، إذا كانت المدخلات هي:

42.5
Active User
FALSE

يجب أن تكون المخرجات:

[[1]]
[1] 42.5

[[2]]
[1] "Active User"

[[3]]
[1] FALSE

[[1]]
[1] 10 20 30

[[2]]
[1] "data"

تذكر أن القوائم (lists) يمكنها الاحتفاظ بعناصر من أنواع مختلفة، ويمكنك تضمين المتجهات (vectors) كعناصر داخل القائمة.

ورقة مرجعية

تُعد القائمة (list) هيكل بيانات مرنًا يمكنه احتواء عناصر من أنواع مختلفة (أرقام، أو أحرف، أو قيم منطقية، أو متجهات، أو حتى قوائم أخرى).

أنشئ قائمة باستخدام دالة list():

my_list <- list(42, "hello", TRUE)
print(my_list)

المخرجات:

[[1]]
[1] 42

[[2]]
[1] "hello"

[[3]]
[1] TRUE

يمكن أن تحتوي القوائم على متجهات كعناصر:

my_list <- list(c(1, 2, 3), "text", c(TRUE, FALSE))
print(my_list)

المخرجات:

[[1]]
[1] 1 2 3

[[2]]
[1] "text"

[[3]]
[1]  TRUE FALSE

جرّب بنفسك

# قراءة المدخلات الثلاثة
con <- file("stdin", "r")
numeric_input <- suppressWarnings(readLines(con, n = 1))
text_input <- suppressWarnings(readLines(con, n = 1))
logical_input <- suppressWarnings(readLines(con, n = 1))

# TODO: اكتب الكود الخاص بك أدناه
# 1. تحويل المدخلات إلى أنواعها المناسبة (رقمي، نصي، منطقي)
# 2. إنشاء قائمة تحتوي على هذه القيم الثلاث المحولة بالترتيب
# 3. إنشاء قائمة ثانية تحتوي على c(10, 20, 30) كعنصر أول و "data" كعنصر ثاني
# 4. طباعة كلتا القائمتين
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals