מעבר בלולאה על שמות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-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 אונליין