كيفية استخراج سلسلة بين أحرف محددة في r


يمكنك استخدام الطرق التالية لاستخراج سلسلة بين أحرف محددة في R:

الطريقة الأولى: استخراج السلسلة بين أحرف محددة باستخدام Base R

 gsub(" .*char1 (.+) char2.*", "\\1 ", my_string)

الطريقة الثانية: استخراج السلسلة بين أحرف محددة باستخدام stringr

 library (stringr)

str_match(my_string, " char1\\s*(.*?)\\s*char2 ")[,2]

يقوم هذان المثالان باستخراج السلسلة الموجودة بين char1 و char2 في my_string .

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:

 #create data frame
df <- data. frame (team=c('team Mavs pro', 'team Heat pro', 'team Nets pro'),
                 dots=c(114, 135, 119))

#view data frame
df

           team points
1 Mavs pro team 114
2 team Heat pro 135
3 pro Nets team 119

مثال 1: استخراج سلسلة بين أحرف محددة باستخدام Base R

يوضح التعليمة البرمجية التالية كيفية استخراج السلسلة بين أحرف الفريق والمحترفين لكل صف في عمود الفريق بإطار البيانات:

 #create new column that extracts string between team and pro
df$team_name <- gsub(" .*team (.+) pro.*", "\\1 ", df$team)

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

لاحظ أن العمود الجديد المسمى team_name يحتوي على السلسلة بين أحرف الفريق والأحرف الاحترافية لكل صف في عمود الفريق بإطار البيانات.

ذات صلة : مقدمة إلى gsub() في R

المثال 2: استخراج سلسلة بين أحرف محددة باستخدام حزمة stringr

يوضح التعليمة البرمجية التالية كيفية استخراج السلسلة بين أحرف الفريق والمحترفين لكل صف في عمود الفريق في إطار البيانات باستخدام وظيفة str_match() لحزمة stringr في R:

 library (stringr)

#create new column that extracts string between team and pro
df$team_name <- str_match(df$team, " team\\s*(.*?)\\s*pro ")[,2]

#view updated data frame
df

           team points team_name
1 Mavs pro team 114 Mavs
2 team Heat pro 135 Heat
3 Nets pro team 119 Nets

لاحظ أن العمود الجديد المسمى team_name يحتوي على السلسلة بين أحرف الفريق والأحرف الاحترافية لكل صف في عمود الفريق بإطار البيانات.

وهذا يتوافق مع نتائج استخدام الدالة gsub() في الأساس R.

لاحظ أن الدالة str_match() ترجع مصفوفة يحتوي فيها العمود الأول على السلاسل الأصلية ويحتوي العمود الثاني على السلسلة الفرعية محل الاهتمام.

وبالتالي، يجب علينا استخدام [,2] لاستخراج العمود الثاني فقط من المصفوفة التي يتم إرجاعها بواسطة الدالة str_match() .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية تحديد الأعمدة التي تحتوي على سلسلة محددة في R
كيفية إزالة الأحرف من سلسلة في R
كيفية العثور على موقع الحرف في سلسلة في R

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *