المتجهات المسماة
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 62 من 78.
حتى الآن، قمت بالوصول إلى عناصر المتجه باستخدام المواقع الرقمية. ولكن ماذا لو كان بإمكانك الوصول إليها من خلال أسماء ذات معنى بدلاً من ذلك؟ تتيح لك المتجهات المسماة تعيين تسميات لكل عنصر، مما يجعل الكود الخاص بك أكثر قابلية للقراءة وتوثيقاً ذاتياً.
يمكنك إنشاء متجه مسمى من خلال توفير الأسماء أثناء الإنشاء:
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)المخرجات:
alice bob charlie
25 30 28للوصول إلى العناصر حسب الاسم، استخدم الاسم كسلسلة نصية داخل أقواس مربعة:
print(ages["bob"])المخرجات:
bob
30يمكنك أيضاً إضافة أسماء إلى متجه موجود باستخدام دالة names():
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])المخرجات:
math
85تعتبر المتجهات المسماة مفيدة بشكل خاص عند التعامل مع البيانات التي تحتوي على تسميات طبيعية، مثل تخزين درجات الطلاب حسب المادة أو الأسعار حسب اسم المنتج.
التحدي
سهلستتلقى سطرين من المدخلات:
- قائمة بأسماء المنتجات مفصولة بفاصلة (على سبيل المثال،
laptop,phone,tablet,headphones) - قائمة بالأسعار المقابلة مفصولة بفاصلة (على سبيل المثال،
999,699,449,199)
قم بإجراء العمليات التالية:
- أنشئ متجهًا عدديًا (numeric vector) من الأسعار
- قم بتعيين أسماء المنتجات للمتجه باستخدام دالة
names() - اطبع المتجه المسمى بالكامل
- اطبع سعر المنتج الثاني عن طريق الوصول إليه باستخدام اسمه
- اطبع سعر المنتج الأخير عن طريق الوصول إليه باستخدام اسمه
على سبيل المثال، إذا كانت المدخلات هي:
apple,banana,orange,grape
2,1,3,4يجب أن تكون المخرجات:
apple banana orange grape
2 1 3 4
banana
1
grape
4ملاحظة: قم بالوصول إلى العنصرين الثاني والأخير من خلال أسمائهما (كسلاسل نصية)، وليس من خلال الفهرس الرقمي.
ورقة مرجعية
تسمح لك المتجهات المسماة (Named vectors) بتعيين تسميات لكل عنصر، مما يجعل الوصول إلى العناصر ممكناً عبر أسماء ذات معنى بدلاً من مجرد المواقع الرقمية.
قم بإنشاء متجه مسمى من خلال توفير الأسماء أثناء الإنشاء:
ages <- c(alice = 25, bob = 30, charlie = 28)قم بالوصول إلى العناصر بالاسم باستخدام الاسم كسلسلة نصية داخل أقواس مربعة:
ages["bob"] # Returns the element named "bob"أضف أسماء إلى متجه موجود باستخدام دالة names():
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
scores["math"] # Returns 85جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# تحليل المدخلات المفصولة بفاصلة
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]
# TODO: اكتب كودك أدناه
# 1. إنشاء متجه عددي من الأسعار
# 2. تعيين أسماء المنتجات للمتجه باستخدام ()names
# 3. طباعة المتجه المسمى بالكامل
# 4. طباعة سعر المنتج الثاني عن طريق الوصول إليه باستخدام اسمه
# 5. طباعة سعر المنتج الأخير عن طريق الوصول إليه باستخدام اسمهيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ