دوال معالجة السلاسل النصية
جزء من قسم Fundamentals في رحلة 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)
قم بإجراء العمليات التالية:
- قم بتحويل الاسم الأول إلى أحرف كبيرة (uppercase) باستخدام
toupper() - قم بتحويل اسم العائلة إلى أحرف صغيرة (lowercase) باستخدام
tolower() - قم بدمجهما في اسم كامل باستخدام
paste()(مع وجود مسافة بينهما) - احسب العدد الإجمالي للأحرف في الاسم الكامل (بما في ذلك المسافة) باستخدام
nchar() - أنشئ اسم مستخدم عن طريق دمج الاسم الأول واسم العائلة بدون فاصل باستخدام
paste0()، بحيث يكون الجميع بأحرف صغيرة - اطبع الاسم الكامل
- اطبع عدد الأحرف
- اطبع اسم المستخدم
على سبيل المثال، إذا كانت المدخلات هي:
alice
WONDERيجب أن تكون المخرجات:
[1] "ALICE wonder"
[1] 12
[1] "alicewonder"الشرح: الاسم الأول "alice" يصبح "ALICE" (أحرف كبيرة)، واسم العائلة "WONDER" يصبح "wonder" (أحرف صغيرة). الاسم الكامل "ALICE wonder" يحتوي على 12 حرفاً (بما في ذلك المسافة). اسم المستخدم يدمج كلا الاسمين بأحرف صغيرة بدون فاصل: "alicewonder".
ورقة مرجعية
تعيد الدالة 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"تقوم الدالة toupper() بتحويل السلاسل النصية إلى أحرف كبيرة، وتقوم tolower() بتحويلها إلى أحرف صغيرة:
print(toupper("hello")) # المخرجات: [1] "HELLO"
print(tolower("WORLD")) # المخرجات: [1] "world"جرّب بنفسك
# قراءة المدخلات
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)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ12التكرار عبر التسلسلات
التكرار عبر عناصر الـ Vectorاستخدام ()seq_alongالتكرار عبر المحارف (strsplit)دوال معالجة السلاسل النصية