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

المتجهات المسماة

جزء من قسم 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

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

challenge icon

التحدي

سهل

ستتلقى سطرين من المدخلات:

  1. قائمة بأسماء المنتجات مفصولة بفاصلة (على سبيل المثال، laptop,phone,tablet,headphones)
  2. قائمة بالأسعار المقابلة مفصولة بفاصلة (على سبيل المثال، 999,699,449,199)

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

  1. أنشئ متجهًا عدديًا (numeric vector) من الأسعار
  2. قم بتعيين أسماء المنتجات للمتجه باستخدام دالة names()
  3. اطبع المتجه المسمى بالكامل
  4. اطبع سعر المنتج الثاني عن طريق الوصول إليه باستخدام اسمه
  5. اطبع سعر المنتج الأخير عن طريق الوصول إليه باستخدام اسمه

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

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. طباعة سعر المنتج الأخير عن طريق الوصول إليه باستخدام اسمه
quiz iconاختبر نفسك

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

جميع دروس Fundamentals