בדיקת שייכות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-R של Coddy. שיעור 14 מתוך 64.
x %in% set בודק כל איבר של x ומחזיר ערך לוגי אחד לכל איבר. all() בודק אם כל הבדיקות הן TRUE, ו־any() בודק אם לפחות אחת מהן כזו.
required <- c("flour", "eggs", "milk")
pantry <- c("eggs", "salt", "flour")
print(required %in% pantry)
print(all(required %in% pantry))
print(any(required %in% pantry))פלט:
[1] TRUE TRUE FALSE
[1] FALSE
[1] TRUEבצעו אינדוקס עם בדיקה שלילית כדי להציג את הפריטים החסרים, לפי הסדר של הווקטור הראשון:
required <- c("flour", "eggs", "milk", "sugar")
pantry <- c("eggs", "flour")
missing <- required[!(required %in% pantry)]
print(missing)פלט:
[1] "milk" "sugar"setequal(a, b) בודקת אם שני וקטורים מכילים את אותם ערכים, בלי להתחשב בסדר ובחזרות:
print(setequal(c("a", "b"), c("b", "a", "a")))
print(setequal(c("a", "b"), c("a", "c")))פלט:
[1] TRUE
[1] FALSEבווקטור ריק, all() היא TRUE ו-any() היא FALSE: כשלא נדרש דבר, שום דבר לא חסר.
which() ממירה וקטור לוגי למיקומים של ערכי TRUE שבו, וכך מראה לך היכן נמצאות ההתאמות:
required <- c("flour", "eggs", "milk")
pantry <- c("eggs")
print(which(!(required %in% pantry)))פלט:
[1] 1 3אתגר
קלהשלימו את check_recipe(required, pantry). החזירו ready כאשר כל המרכיבים הנדרשים נמצאים במזווה. אחרת החזירו missing: ואחריו המרכיבים החסרים, לפי הסדר של required, כשהם מופרדים באמצעות , .
הקוד שסופק קורא את המרכיבים הנדרשים ואת תכולת המזווה כשורות המופרדות בפסיקים, ומדפיס את הערך שהוחזר.
נסו בעצמכם
check_recipe <- function(required, pantry) {
# כתבו כאן את הקוד שלכם
""
}
# קוד קלט/פלט שסופק: השאירו אותו כפי שהוא
input <- suppressWarnings(readLines(file("stdin")))
cat(check_recipe(strsplit(input[1], ",")[[1]], strsplit(input[2], ",")[[1]]), sep = "\n")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1מחרוזות לעומק
תת־מחרוזות עם substr()עיצוב עם sprintf()פיצול וחיבורחיפוש במחרוזותהחלפת טקסטסיכום – בונה שמות משתמש4מטריצות
יצירת מטריצותאינדוקס מטריצותסיכומי שורות ועמודותאריתמטיקה של מטריצותסיכום – תרשים מקומות ישיבהתרגלו בעצמכם: קומפיילר R אונליין