Menu
CoddyTech

איטרציה על תווים (strsplit

חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 65 מתוך 78.

מה אם צריך לעבד כל תו במחרוזת בנפרד? בניגוד לווקטורים, אי אפשר לעבור ישירות בלולאה על התווים של מחרוזת ב-R. הפונקציה strsplit() פותרת זאת על ידי פיצול מחרוזת לווקטור של תווים.

הפונקציה strsplit() מקבלת שני ארגומנטים: המחרוזת שיש לפצל והמפריד. כדי לפצל לתווים בודדים, השתמשו במחרוזת ריקה "" בתור המפריד:

word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)

פלט:

[1] "h" "e" "l" "l" "o"

שימו לב ל־[[1]] שבסוף. הסיבה לכך היא ש־strsplit() מחזירה רשימה, ועלינו לחלץ את האיבר הראשון כדי לקבל את וקטור התווים שלנו. לאחר שהתווים נמצאים בווקטור, אפשר לעבור עליהם בעזרת הטכניקות שכבר למדתם:

word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
  print(char)
}

פלט:

[1] "R"

הטכניקה הזו חיונית למשימות כמו ספירת תווים מסוימים, היפוך מחרוזות או אימות קלט תו אחר תו.

challenge icon

אתגר

קל

תקבלו שורת קלט אחת המכילה מילה (למשל, programming).

השתמשו ב־strsplit() כדי לפצל את המחרוזת לתווים בודדים:

  1. פצלו את מילת הקלט לווקטור של תווים
  2. עברו בלולאה על כל תו בווקטור
  3. ספרו כמה פעמים האות "a" מופיעה במילה (תוך הבחנה בין אותיות גדולות לקטנות)
  4. הדפיסו כל תו בשורה משלו באמצעות print()
  5. לאחר הלולאה, הדפיסו את הספירה באמצעות cat() בפורמט: Count of 'a': X ואחריו שורה חדשה

לדוגמה, אם הקלט הוא:

banana

הפלט צריך להיות:

[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3

הסבר: המילה "banana" מפוצלת לתווים c("b", "a", "n", "a", "n", "a"). כל תו מודפס, והאות "a" מופיעה 3 פעמים.

נסו בעצמכם

# קראו את הקלט
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))

# אתחלו מונה עבור האות 'a'
count_a <- 0

# TODO: כתבו את הקוד שלכם למטה
# 1. השתמשו ב-strsplit() כדי לפצל את המילה לתווים בודדים
# 2. עברו על כל תו בלולאה
# 3. הדפיסו כל תו באמצעות print()
# 4. ספרו כמה פעמים מופיעה 'a'

# הציגו את מספר ההופעות של 'a'
cat("Count of 'a': ", count_a, "\n", sep = "")
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר R אונליין