البرمجة

استخراج البيانات باستخدام مكتبة stringr في R

عندما تكون في مرحلة تحليل البيانات باستخدام لغة R، قد تجد نفسك بحاجة إلى استخراج أجزاء محددة من النصوص وفقًا لأنماط معينة. في هذا السياق، يأتي استخدام مكتبة “stringr” في R لتسهيل عملية استخراج النصوص.

لكن، في حالتك، ترغب في استخراج كل شيء حتى أول حدوث لنمط معين، وبالتحديد، النص الموجود قبل أول مظهر لعلامة التحت-شرطة (_). باستخدام الدالة str_extract، يمكنك أن تبدأ بالنمط المناسب.

محاولتك الحالية:

arduino
str_extract("L0_123_abc", ".+?(?<=_)")

تقريباً صحيحة، ولكنها تأتي بالمزيد مما تريد. لا تتضمن النمط الذي اخترته النقطة النهائية بعد علامة التحت-شرطة، لذا تستمر في استخراج النص بعد التحت-شرطة. لحل هذا، يمكنك استخدام النمط التالي:

arduino
str_extract("L0_123_abc", "^[^_]+")

هذا النمط يقول لـ str_extract: “ابحث عن أي شيء ليس علامة تحت-شرطة (^_)، وذلك من بداية السلسلة (^) حتى تظهر علامة التحت-شرطة لأول مرة.” بمعنى آخر، يتم استخراج كل ما يتبع السلسلة حتى ولو ظهرت علامة تحت-شرطة في وسط النص.

لكن ماذا لو أردت استخراج المعلومات بين الظهور الأول والثاني لعلامة التحت-شرطة، أو بعد الظهور الثالث؟ في هذه الحالة، يمكنك استخدام الدالة str_extract_all لاستخراج جميع النماذج المطابقة للنمط المعطى. لاحظ أنه يمكنك استخدام استخراج الفهرس للاطلاع على النموذج الذي تريده.

مثلاً، لاستخراج المعلومات بين الظهور الأول والثاني لعلامة التحت-شرطة:

lua
str_extract_all("L0_123_abc_xyz", "(?<=_)[^_]+")[[1]][1]

هذا يقول لـ str_extract_all: “ابحث عن أي شيء ليس علامة تحت-شرطة ( [^] ) بعد ظهور علامة التحت-شرطة ( (?<=) )”. وباستخدام فهرس [11][1]، يمكنك الوصول إلى النمط الأول الذي تم استخراجه، وهو النمط الذي يتم بين الظهور الأول والثاني لعلامة التحت-شرطة.

أما بالنسبة لاستخراج المعلومات بعد الظهور الثالث لعلامة التحت-شرطة:

lua
str_extract_all("L0_123_abc_xyz_qwerty_123", "(?<=_)[^_]+")[[1]][3]

هذا سيعطيك النمط الذي يأتي بعد الظهور الثالث لعلامة التحت-شرطة.

باستخدام هذه الأساليب، يمكنك استخراج النصوص بمرونة ودقة وفقًا للأنماط المطلوبة، وتحليل البيانات بشكل أكثر فعالية في R.

المزيد من المعلومات

بالطبع، دعنا نكمل المقال لتوضيح المزيد من الاستخدامات القوية لمكتبة “stringr” في R.

استخراج البيانات بناءً على أنماط محددة يمكن أن يكون حاسمًا في تحليل البيانات والتلاعب بها. ومع تعقيدات البيانات المتزايدة، يصبح من الضروري فهم كيفية استخدام الأدوات المتاحة بفعالية لتلبية احتياجات التحليل.

لنتوسع أكثر في استخدامات مكتبة “stringr”، دعنا نتحدث عن كيفية استخراج البيانات بناءً على أنماط متعددة في النص.

مثلاً، لنفترض أن لديك سلسلة نصية تحتوي على تواريخ متعددة في تنسيق معين، وترغب في استخراج هذه التواريخ. باستخدام “stringr”، يمكنك استخدام الدوال المتقدمة للبحث عن أنماط معقدة.

على سبيل المثال، لاستخراج التواريخ من سلسلة النصوص:

R
library(stringr) text <- "التاريخ: 2024-04-11 و 2024-04-15" dates <- str_extract_all(text, "\\d{4}-\\d{2}-\\d{2}")

هذا الكود سيستخرج جميع التواريخ في التنسيق المطلوب (YYYY-MM-DD) من النص، ويضعها في قائمة تحتوي على جميع التواريخ المستخرجة.

بهذه الطريقة، يمكنك استخدام “stringr” لاستخراج البيانات بناءً على أنماط معقدة مثل التواريخ، الأرقام، العناوين، وغيرها، وذلك بطريقة سلسة وفعالة.

إضافة إلى ذلك، يمكنك استخدام الوظائف الأخرى المتوفرة في “stringr” لتنظيف البيانات وتحويلها بطريقة أكثر دقة ومرونة.

باختصار، باستخدام مكتبة “stringr” في R، يمكنك استخراج البيانات بناءً على أنماط محددة بطريقة سهلة وفعالة، مما يسهل عليك تحليل البيانات واستخدامها في أغراضك البحثية أو التطبيقية بشكل أكثر دقة وفعالية.

مقالات ذات صلة

زر الذهاب إلى الأعلى