פונקציות לעיבוד מחרוזות
חלק מהיחידה יסודות במסלול ה-R של Coddy. שיעור 66 מתוך 78.
עכשיו, כשאתה יודע איך לפצל מחרוזות לתווים, בוא נבחן כמה פונקציות חיוניות לעבודה עם מחרוזות ב-R. הפונקציות האלה עוזרות למדוד, לשלב ולהמיר נתוני טקסט.
הפונקציה nchar() מחזירה את מספר התווים במחרוזת:
word <- "hello"
print(nchar(word))פלט:
[1] 5כדי לשלב כמה מחרוזות לאחת, השתמשו ב־paste(). כברירת מחדל, היא מפרידה בין הרכיבים באמצעות רווח:
result <- paste("Hello", "World")
print(result)פלט:
[1] "Hello World"השתמשו ב־paste0() כשרוצים שלא יהיה מפריד בין מחרוזות:
result <- paste0("Hello", "World")
print(result)פלט:
[1] "HelloWorld"להמרת אותיות גדולות וקטנות, R מספקת את toupper() ואת tolower():
print(toupper("hello"))
print(tolower("WORLD"))פלט:
[1] "HELLO"
[1] "world"הפונקציות האלה נעשות עוצמתיות כשמשלבים אותן עם טכניקות האיטרציה שלמדת, ומאפשרות לך לעבד ולשנות טקסט תו אחר תו או כמחרוזות שלמות.
אתגר
קלתקבלו שתי שורות קלט:
- שם פרטי (למשל,
john) - שם משפחה (למשל,
SMITH)
בצעו את הפעולות הבאות:
- המירו את השם הפרטי לאותיות גדולות באמצעות
toupper() - המירו את שם המשפחה לאותיות קטנות באמצעות
tolower() - חברו אותם לשם מלא באמצעות
paste()(עם רווח ביניהם) - חשבו את מספר התווים הכולל בשם המלא (כולל הרווח) באמצעות
nchar() - צרו שם משתמש על ידי חיבור השם הפרטי ושם המשפחה ללא מפריד, באמצעות
paste0(), כשהכול באותיות קטנות - הדפיסו את השם המלא
- הדפיסו את מספר התווים
- הדפיסו את שם המשתמש
לדוגמה, אם הקלט הוא:
alice
WONDERהפלט אמור להיות:
[1] "ALICE wonder"
[1] 12
[1] "alicewonder"הסבר: השם הפרטי "alice" הופך ל-"ALICE" (אותיות גדולות), ושם המשפחה "WONDER" הופך ל-"wonder" (אותיות קטנות). בשם המלא "ALICE wonder" יש 12 תווים (כולל הרווח). שם המשתמש מחבר את שני השמות באותיות קטנות וללא מפריד: "alicewonder".
נסו בעצמכם
# קרא את הקלט
con <- file("stdin", "r")
first_name <- suppressWarnings(readLines(con, n = 1))
last_name <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: כתוב את הקוד שלך למטה
# 1. המר את first_name לאותיות גדולות באמצעות toupper()
# 2. המר את last_name לאותיות קטנות באמצעות tolower()
# 3. שלב אותם ב-full_name באמצעות paste()
# 4. חשב את מספר התווים באמצעות nchar()
# 5. צור username באמצעות paste0() (הכול באותיות קטנות)
# הצג את התוצאות
print(full_name)
print(char_count)
print(username)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים (AND, OR)אופרטורים לוגיים חלק 2 (NOT)חזרה – לוגיקה פשוטהלוגיקה וקטורית חלק 1לוגיקה וקטורית חלק 27מחשבון לחלוקת החשבון
הודעת פתיחהקבלת קלט מהמשתמש2משתנים וסוגי נתונים
סוג נתונים מספריסוג נתונים שלמיםסוג נתונים של תוויםסוג נתונים לוגיבדיקת סוגי נתוניםמוסכמות למתן שמותערכים חסרים: NAסיכום – יצירת משתנים8לולאות
לולאת forלולאת whileפקודת breakהמשך (continue)סיכום – עצרתיצירת רצפים (seq, :)לולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםחלוקת מספרים שלמים ומודולואופרטורי השמהחזרה – חשבון פשוטאופרטורי השוואה6קלט/פלט בסיסי
הדפסת פלטחתול כפלטפלט עם משתניםקריאת קלט באמצעות readline()יסודות המרת טיפוסיםחזרה – מחשבון גילחזרה – אמת או שקר9פונקציות
הכרזה על פונקציהארגומנטים של פונקציהערכי החזרהסיכום – פונקציית סיגמאסיכום – פונקציית אימותערכי ברירת מחדל לפרמטרים12איטרציה על רצפים
איטרציה על איברי וקטורשימוש ב־seq_along()איטרציה על תווים (strsplitפונקציות לעיבוד מחרוזותתרגלו בעצמכם: קומפיילר R אונליין