في لغة البرمجة R، عندما نحتاج إلى العثور على جميع الفهارس التي تحتوي على قيمة معينة في قائمة، وبالتحديد في حالتك قيمة صفر، يمكن استخدام دالة مشابهة لـ match
تعيد جميع الفهارس المطابقة بدلاً من الفهرس الأول فقط. يمكن استخدام دالة which
بالتعبير المنطقي للقيمة التي نريد البحث عنها.
-
تبادل بيانات المستخدم في Python06/04/2024
إليك كيفية استخدام هذه الطريقة في R:
R# القائمة التي سنقوم بالبحث فيها
a <- c(1, 2, 3, 0, 5, 7, 0)
# الحصول على جميع الفهارس التي تحتوي على القيمة صفر
result <- which(a == 0)
# طباعة النتيجة
print(result)
سينتج الكود السابق الفهارس التي تحتوي على القيمة صفر، وهي [1] 4 7
.
يعمل الكود على التالي:
- يستخدم العبارة
a == 0
لإنشاء تعبير منطقي يقارن كل عنصر في القائمةa
بالقيمة صفر، مما يعيد متجهًا من القيم المنطقيةTRUE
وFALSE
. - تستخدم دالة
which
للعثور على الفهارس التي تحتوي على القيم المطابقة للشرط (يعني القيم صفر في هذه الحالة). - يتم طباعة النتيجة.
هذه الطريقة تسمح بالعثور على جميع الفهارس التي تحتوي على القيمة المطابقة، بدلاً من الحصول فقط على أول فهرس يطابق الشرط كما يفعل match
.
المزيد من المعلومات
بالطبع، سأزيد من التفاصيل لتوضيح هذه العملية بشكل أكبر.
في R، تعمل دالة which
على إرجاع فهارس (أو مواقع) القيم التي تلبي شرط معين. هذا يعني أنها تأخذ متجهًا من القيم المنطقية كمدخل وترجع مواقع القيم التي تتطابق مع القيم المنطقية “صحيحة”. على سبيل المثال، في الحالة الحالية حيث نريد العثور على جميع الفهارس التي تحتوي على القيمة صفر، سيعيد استخدام which(a == 0)
الفهارس حيث يكون العنصر مساويًا للصفر.
يمكننا أيضًا تضمين هذا الشرط مباشرةً داخل دالة which
بدلاً من إنشاء متجه من القيم المنطقية. على سبيل المثال:
R# الحصول على جميع الفهارس التي تحتوي على القيمة صفر
result <- which(a == 0)
# يمكن كتابة الشرط مباشرة كالتالي
result <- which(a %in% 0)
الخيار الثاني يستخدم %in%
الذي يتحقق مما إذا كانت القيمة موجودة في القائمة المعطاة. في هذه الحالة، نضع 0 بعد %in%
للتحقق مما إذا كانت القيمة صفر موجودة في القائمة.
الاختلاف الرئيسي بين الخيارين هو أن استخدام الشرط المباشر داخل which
يمكن أن يكون أكثر وضوحًا وسهولة للقراءة في بعض الحالات. ومع ذلك، فإن استخدام تعبير منطقي قد يكون أكثر مرونة في حالة وجود شروط معقدة أو متعددة.
باستخدام أي من هذه الطرق، يمكنك الآن العثور على جميع الفهارس التي تحتوي على القيمة صفر في قائمتك والتعامل معها بالطريقة التي تناسب احتياجاتك.