إنشاء القوائم
جزء من قسم 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إن هذه القدرة على مزج أنواع البيانات المختلفة تجعل القوائم مثالية لتمثيل هياكل البيانات المعقدة، مثل الملف الشخصي لشخص ما الذي يحتوي على عمره واسمه وحالة عضويته، كل ذلك في كائن واحد.
التحدي
سهلستتلقى ثلاثة أسطر من المدخلات:
- قيمة عددية (مثلاً،
99.99) - قيمة نصية (مثلاً،
Premium Member) - قيمة منطقية كنص: إما
TRUEأوFALSE(مثلاً،TRUE)
قم بإجراء العمليات التالية:
- اقرأ المدخلات الثلاثة وقم بتحويلها إلى أنواعها المناسبة (numeric، و character، و logical)
- أنشئ قائمة (list) تحتوي على هذه القيم الثلاث بالترتيب: القيمة العددية أولاً، ثم النص، ثم القيمة المنطقية
- أنشئ قائمة ثانية تحتوي على متجه (vector) من ثلاثة أرقام
c(10, 20, 30)كعنصر أول، والنص"data"كعنصر ثاني - اطبع القائمة الأولى
- اطبع القائمة الثانية
على سبيل المثال، إذا كانت المدخلات هي:
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. طباعة كلتا القائمتينيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)11المتجهات
إنشاء المتجهات باستخدام c()الوصول إلى عناصر المتجهتعديل المتجهاتالعمليات على المتجهاتمراجعة - متجه الأسعارمراجعة - المتجه المعكوسالمتجهات المسماة14القوائم في R
إنشاء القوائمالوصول إلى عناصر القائمةتعديل القوائمالقوائم المُسماةمراجعة - قائمة المنتجات3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ