Menu
CoddyTech
flag Ar iconالعربيةdown icon

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

جزء من قسم الأساسيات في رحلة 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. أنشئ متجهًا رقميًا من الأسعار
  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

ملاحظة: يمكنك الوصول إلى العنصرين الثاني والأخير باستخدام اسم بوصفه فهرسًا (سلسلة نصية، مثل prices["banana"])، وليس باستخدام موضع رقمي. تأتي الأسماء من سطر الإدخال الأول، لذا ابحث عن الاسم الصحيح هناك أولًا.

جرّب بنفسك

# اقرأ المدخلات
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اختبر نفسك

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

جميع دروس الأساسيات

تدرّب بنفسك: مترجم R عبر الإنترنت