מיון וקטורים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 37 מתוך 64.
sort(x) מחזירה את הערכים של x בסדר עולה, ו-decreasing = TRUE הופך את הסדר. הווקטור המקורי אינו משתנה:
scores <- c(72, 95, 60, 88)
print(sort(scores))
print(sort(scores, decreasing = TRUE))
print(scores)פלט:
[1] 60 72 88 95
[1] 95 88 72 60
[1] 72 95 60 88טקסט ממוין בסדר אלפביתי. הסדר המדויק תלוי בהגדרות השפה של המערכת: ב-Coddy, כמו בשרתים רבים, אותיות גדולות מופיעות לפני אותיות קטנות, ולכן "Zed" מופיע לפני "ada". השתמשו ב-tolower() כשהבחנה בין אותיות גדולות לקטנות אינה חשובה:
names <- c("cy", "Zed", "ada")
print(sort(names))
print(sort(tolower(names)))פלט:
[1] "Zed" "ada" "cy"
[1] "ada" "cy" "zed"rev(x) הופכת את הסדר הנוכחי בלי למיין, ו־head(x, n) שומרת את n האיברים הראשונים, וכך, יחד עם sort(), מתקבלת רשימת המובילים:
scores <- c(72, 95, 60, 88)
print(rev(scores))
print(head(sort(scores, decreasing = TRUE), 2))פלט:
[1] 88 60 95 72
[1] 95 88וקטור ממוין עם שמות שומר כל שם יחד עם הערך שלו, כך שהשמות מתקבלים לפי סדר הערכים:
stock <- c(tea = 12, jam = 3, oil = 7)
low_first <- sort(stock)
print(names(low_first))
print(low_first[["jam"]])פלט:
[1] "jam" "oil" "tea"
[1] 3אתגר
קלהשלם את top_scores(scores, n). החזר את n הציונים הגבוהים ביותר, מהגבוה לנמוך, כשהם מחוברים באמצעות , . אם יש פחות מ־n ציונים, החזר את כולם.
הקוד שסופק קורא את הציונים בשורה המופרדת בפסיקים ואת n, ומדפיס את הערך שהוחזר.
נסו בעצמכם
top_scores <- function(scores, n) {
# כתבו את הקוד שלכם כאן
""
}
# קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
input <- suppressWarnings(readLines(file("stdin")))
cat(top_scores(as.numeric(strsplit(input[1], ",")[[1]]), as.numeric(input[2])), sep = "\n")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
תת־מחרוזות עם substr()עיצוב עם sprintf()פיצול וחיבורחיפוש במחרוזותהחלפת טקסטסיכום – בונה שמות משתמש4מטריצות
יצירת מטריצותאינדוקס מטריצותסיכומי שורות ועמודותאריתמטיקה של מטריצותסיכום – תרשים מקומות ישיבהתרגלו בעצמכם: קומפיילר R אונליין