التكرار عبر الأسماء
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 10 من 64.
تمرّ حلقة for على names(x) بكل مفتاح، وتعطي x[[key]] القيمة الخاصة بذلك المفتاح:
scores <- c(ada = 91, bo = 78, cy = 85)
for (name in names(scores)) {
cat(name, "scored", scores[[name]], "\n")
}الناتج:
ada scored 91
bo scored 78
cy scored 85 تحتفظ العناصر بالترتيب الذي أُضيفت به. استخدم حلقة على sort(names(x)) للحصول على ترتيب أبجدي:
scores <- c(cy = 85, ada = 91, bo = 78)
for (name in sort(names(scores))) {
cat(name, scores[[name]], "\n")
}الناتج:
ada 91
bo 78
cy 85 يؤدي التكرار على المدخلات وتحديث جدول البحث إلى حساب عدد مرات ظهور كل قيمة. في المرة الأولى التي تظهر فيها كلمة، تكون قيمتها 1، وبعد ذلك تزداد بمقدار 1:
words <- c("red", "blue", "red", "green", "red")
counts <- c()
for (w in words) {
if (w %in% names(counts)) {
counts[w] <- counts[w] + 1
} else {
counts[w] <- 1
}
}
print(counts[["red"]])
print(names(counts))الناتج:
[1] 3
[1] "red" "blue" "green"لإنشاء أسطر الإخراج، اجمعها في متجه داخل الحلقة ثم أعدها أو اطبعها في النهاية:
scores <- c(ada = 91, bo = 78)
lines <- c()
for (name in names(scores)) {
lines <- c(lines, paste0(name, ": ", scores[[name]]))
}
cat(lines, sep = "\n")الإخراج:
ada: 91
bo: 78التحدي
سهلأكمل word_counts(words). أعد سطرًا واحدًا لكل كلمة مميزة، بترتيب أبجدي، بالتنسيق word: count.
يقرأ الكود المرفق الكلمات في سطر واحد تفصل بينها مسافات، ويطبع كل سطر مُعاد.
جرّب بنفسك
word_counts <- function(words) {
# اكتب شيفرتك هنا
character(0)
}
# شيفرة الإدخال والإخراج المقدّمة: اتركها كما هي
input <- suppressWarnings(readLines(file("stdin")))
cat(word_counts(strsplit(input[1], " ")[[1]]), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت