البحث في المتجهات المُسمّاة
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 7 من 64.
يخزّن المتجه المُسمّى القيم تحت أسماء، مما يجعله جدول بحث: الاسم هو المفتاح والعنصر هو قيمته. ضع الاسم داخل [[ ]] للحصول على القيمة وحدها.
prices <- c(tea = 4, cake = 7)
print(prices[["cake"]])
print(names(prices))المخرجات:
[1] 7
[1] "tea" "cake"تُرجع الأقواس المفردة العنصر مع اسمه. أما [[ ]] فتُرجع القيمة فقط:
prices <- c(tea = 4, cake = 7)
print(prices["cake"])
print(prices[["cake"]] * 2)الناتج:
cake
7
[1] 14يمكن أن يأتي الاسم من متغيّر، وهذه هي الطريقة التي يبحث بها البرنامج عن مفتاح قرأه من الإدخال:
prices <- c(tea = 4, cake = 7)
item <- "tea"
print(prices[[item]])الناتج:
[1] 4يبحث متجه من الأسماء عن عدة مفاتيح في آنٍ واحد، بما في ذلك المفاتيح المكررة، لذلك تحسب sum() إجمالي الطلب في خطوة واحدة:
prices <- c(tea = 4, cake = 7)
order <- c("tea", "cake", "tea")
print(sum(prices[order]))المخرجات:
[1] 15يتصرف الاسم المفقود بشكل مختلف في الصيغتين: تُرجع prices["milk"] القيمة NA، بينما تتوقف prices[["milk"]] مع الخطأ subscript out of bounds.
التحدي
سهلأكمل line_total(item, qty). تحدد الدالة القائمة أدناه. أعد سعر item مضروبًا في qty، مع تنسيقه بمنزلتين عشريتين: يعطي tea و3 القيمة 7.50.
menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)كل عنصر في الإدخال موجود في القائمة. يقرأ الكود المُ supplied العنصر والكمية ويطبع القيمة المُعادة.
جرّب بنفسك
line_total <- function(item, qty) {
menu <- c(tea = 2.5, coffee = 3, cake = 4.25, soup = 6)
# اكتب الكود الخاص بك هنا
""
}
# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(line_total(input[1], as.numeric(input[2])), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت