التكرار عبر الأسماء
جزء من قسم المنطق وتدفق التنفيذ في رحلة 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 عبر الإنترنت