ج: تحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
يمكنك استخدام الطرق التالية في R للتحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة:
الطريقة الأولى: التحقق مما إذا كانت السلسلة تحتوي على إحدى السلاسل الفرعية المتعددة
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )
يتحقق بناء الجملة هذا مما إذا كانت كل سلسلة في عمود الفريق تحتوي على إحدى السلاسل المحددة في ناقل السلسلة المسمى find_strings .
الطريقة الثانية: التحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )
يتحقق بناء الجملة هذا مما إذا كانت كل سلسلة في عمود الفريق تحتوي على جميع السلاسل المحددة في ناقل السلسلة المسمى find_strings .
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي في R:
#create data frame
df = data. frame (team=c('Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'),
points=c(93, 99, 105, 110, 85, 88))
#view data frame
df
team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88
مثال 1: التحقق مما إذا كانت السلسلة تحتوي على واحدة من عدة سلاسل فرعية
يمكننا استخدام بناء الجملة التالي للتحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي إما على السلسلة الفرعية “جيد” أو “هو”:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings, grepl, df$team), 1 , any )
#view updated data frame
df
team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE
يُرجع العمود good_or_east الجديد القيم التالية:
- صحيح إذا كان الفريق يحتوي على “جيد” أو “هو”
- خطأ إذا كان الفريق لا يحتوي على “جيد” أو “شرقي”
مثال 2 : التحقق مما إذا كانت السلسلة تحتوي على سلاسل فرعية متعددة
يمكننا استخدام الصيغة التالية للتحقق مما إذا كانت كل سلسلة في عمود الفريق تحتوي على السلسلة الفرعية “جيد” و “هو”:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings, grepl, df$team), 1 , all )
#view updated data frame
df
team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE
يُرجع العمود الجديد good_and_east القيم التالية:
- صحيح إذا كان الفريق يحتوي على “جيد” و”هو”
- خطأ إذا كان الفريق لا يحتوي على “جيد” و”هو”
لاحظ أنه يتم إرجاع قيمة TRUE واحدة فقط نظرًا لوجود اسم فريق واحد فقط يحتوي على السلسلة الفرعية “الجيدة” والسلسلة الفرعية “الشرقية”.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
ج: كيفية التحقق مما إذا كان الحرف موجودًا في سلسلة
ج: كيفية إزالة المسافات من السلاسل
ج: كيفية استخراج سلسلة بين أحرف محددة