Menu
Coddy logo textTech

מניפולציה של מחרוזות

שיעור 12 מתוך 14 בקורס מניפולציה של נתונים ב-R של Coddy.

חבילת stringr מספקת אוסף מקיף של פונקציות לעבודה עם מחרוזות.

טעינת חבילת stringr

library(stringr)

התאמת תבניות

הפונקציה str_detect() בודקת אם תבנית קיימת במחרוזת:

text <- c("apple", "banana", "cherry")
str_detect(text, "an")  # מחזיר: FALSE TRUE FALSE

החלפת מחרוזות

הפונקציה str_replace() מחליפה את המופע הראשון של תבנית:

text <- "Hello world"
str_replace(text, "world", "R")  # מחזיר: "Hello R"

פיצול מחרוזות

פצלו מחרוזות לווקטור תווים באמצעות str_split():

text <- "apple,banana,cherry"
str_split(text, ",")  # מחזיר רשימה: list("apple", "banana", "cherry")

הסרת רווחים לבנים

הסירו רווחים לבנים בתחילת המחרוזת ובסופה באמצעות str_trim():

text <- "  Hello, R!  "
str_trim(text)  # מחזיר: "Hello, R!"
quiz iconבחנו את עצמכם

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

quiz iconבחנו את עצמכם

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

quiz iconבחנו את עצמכם

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

challenge icon

אתגר

קל

צרו פונקציה שמעבדת רשימה של כתובות דוא״ל באמצעות טכניקות לעיבוד מחרוזות מהחבילה stringr. הפונקציה צריכה לבצע את הפעולות הבאות:

  1. חלצו את שם המשתמש (החלק שלפני @) מכל כתובת דוא״ל
  2. החליפו כל ספרה בשמות המשתמשים בקו תחתון (_)
    • השתמשו ב-str_replace_all() עם התבנית \\d כדי להחליף את כל הספרות. לדוגמה: str_replace_all(username, "\\d", "_")
  3. הפכו את האות הראשונה בכל שם משתמש לאות גדולה
    • אפשר להשתמש בפונקציה str_to_title() לשם כך. היא הופכת את האות הראשונה בכל מילה במחרוזת לאות גדולה.
  4. הסירו רווחים לבנים בתחילת שמות המשתמשים שעובדו או בסופם
  5. החזירו את שמות המשתמשים שעובדו כמחרוזת המופרדת בפסיקים
    • השתמשו ב-str_c() עם הארגומנט collapse כדי לחבר את שמות המשתמשים. לדוגמה: str_c(usernames, collapse = ", ")

נסו בעצמכם

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

suppressPackageStartupMessages(library(stringr))

process_emails <- function(email_list) {
  # פצלו את רשימת כתובות הדוא״ל לכתובות נפרדות
  emails <- str_split(email_list, ",\\s*")[[1]]
  
  # TODO: כתבו את הקוד שלכם למטה כדי לעבד את כתובות הדוא״ל
  # 1. חלצו שמות משתמש
  # 2. החליפו ספרות בקווים תחתונים
  # 3. הפכו את האות הראשונה לאות גדולה
  # 4. הסירו רווחים מיותרים בתחילת הטקסט ובסופו
  # 5. חברו את שמות המשתמש שעובדו באמצעות פסיקים
  
  # ממלא מקום לשמות המשתמש שעובדו
  processed_usernames <- ""
  
  # החזירו את שמות המשתמש שעובדו כמחרוזת מופרדת בפסיקים
  return(processed_usernames)
}

# קראו לפונקציה והדפיסו את התוצאה
result <- process_emails(email_list)
cat(result)

כל השיעורים ביחידה מניפולציה של נתונים ב-R

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