كيفية استخدام العامل BETWEEN في SAS (مع أمثلة)

دليل أكاديمي شامل يشرح كيفية استخدام العامل BETWEEN في SAS لتصفية البيانات واسترجاع النطاقات المحددة بدقة، مدعوماً بأمثلة عملية وتطبيقات إحصائية.

Mohammed looti أكاديمي وباحث متخصص في علم النفس
تاريخ النشر
تمت المراجعة العلمية · د. مروة عبد العظيم · 20 أكتوبر، 2026
مراجعة وتدقيق علمي معتمد تاريخ التدقيق: 20 أكتوبر، 2026
د. مروة عبد العظيم دكتوراه في علم النفس
عضو هيئة التدريس • جامعة كربلاء
معايير التدقيق والاعتماد السريري

يخضع هذا المحتوى لمعايير ضبط الجودة والتدقيق العلمي والأكاديمي الصارمة في شبكة علم النفس العربي، لضمان صحة المعلومات ودقتها السريرية ومطابقتها لأحدث الأدلة والبراهين الصادرة عن الجمعيات النفسية والطبية المعتمدة (APA / WHO).

تعتبر معالجة البيانات وإدارتها حجر الزاوية في الدراسات الإحصائية المتقدمة والبحوث التجريبية الحديثة؛ إذ لا يمكن لأي نموذج تحليلي أن يقدم استدلالات دقيقة وموثوقة ما لم يتم إرساء آليات تصفية وتنقية صارمة لمدخلاته. وفي هذا السياق، تبرز بيئة نظام التحليل الإحصائي، المعروفة عالمياً باسم نظام التحليل الإحصائي (SAS)، كواحدة من أكثر المنصات البرمجية رسوخاً واعتمادية في مجالات الإحصاء الحيوي، والعلوم الاجتماعية، وعلم النفس القياسي، والأبحاث الإكلينيكية، بفضل ما توفره من أدوات منطقية عالية الدقة تمكن الباحث من السيطرة الكاملة على تدفق السجلات والمعطيات الرقمية.

ومن بين الأدوات المنطقية التي يعتمد عليها محللو البيانات في نظام SAS، يبرز العامل الشرطي BETWEEN كأداة مقارنة محورية تتيح تصفية السجلات واستخلاص المشاهدات الواقعة ضمن نطاقات محددة. وعلى الرغم من أن هذا العامل يُصنف حاسوبياً ضمن المحمولات المنطقية البوليانية (Boolean Logical Predicates) وليس كاختبار إحصائي استدلالي ينتج قيم الدلالة الإحصائية أو أحجام الأثر، إلا أن دوره المنهجي في إعداد مجموعات البيانات وتحديد العينات الخاضعة للدراسة يجعله متطلباً أساسياً لا غنى عنه قبل الشروع في تطبيق النماذج المتقدمة مثل نماذج الانحدار الخطي أو تحليل التباين.

يهدف هذا المقال الأكاديمي الشامل إلى تقديم تفكيك منهجي وتطبيقي دقيق لآلية عمل العامل BETWEEN داخل بيئات SAS المتعددة، بدءاً من خطوة البيانات (DATA Step) ووصولاً إلى إجراء الاستعلام الهيكلي (PROC SQL). وسنتناول بالتفصيل القواعد النحوية الصارمة التي تحكم هذا العامل، وسلوكه الرياضي مع المتغيرات العددية والنصية والزمنية، إضافة إلى استعراض المخاطر البرمجية الدقيقة المرتبطة بالقيم المفقودة، وتحليل كفاءة الأداء الحاسوبي وإدارة الذاكرة عند التعامل مع قواعد البيانات الضخمة، مدعومة بأمثلة برمجية وتطبيقية موثقة تحاكي متطلبات البحث العلمي الرصين.

1. مقدمة تأسيسية حول العامل BETWEEN في نظام التحليل الإحصائي (SAS)

1.1 التعريف النظري والمنطقي للعامل BETWEEN

يُعرَّف العامل BETWEEN في بيئة نظام التحليل الإحصائي (SAS) بأنه محمول شرطي ثنائي يُستخدم لاختبار وقوع قيمة معينة داخل مجال عددي أو ترتيبي مغلق ومستمر. من المنظور الرياضي ونظرية المجموعات، يمثل هذا العامل دالة منطقية ترسم خريطة من فضاء المتغيرات إلى القيم الثنائية البوليانية (صواب أو خطأ)، حيث يتم الحكم على السجل بأنه يفي بالمعيار إذا وفقط إذا كانت قيمته تقع ضمن الفترة المغلقة المقيدة بحد أدنى وحد أعلى.

تتجلى السمة المحورية لهذا العامل في خاصية الشمولية الحدية (Inclusive Boundaries)؛ إذ إن العامل BETWEEN في SAS يُدرج القيمتين الطرفيتين صراحة ضمن نطاق الفرز والترشيح. فإذا افترضنا وجود متغير يمثل درجات اختبار نفسي، وتمت صياغة الشرط ليحدد الدرجات بين القيمة الصغرى والقيمة الكبرى، فإن الأفراد الذين حصلوا تماماً على الدرجة الصغرى أو الدرجة الكبرى سيتم تضمينهم دون استثناء، وهو ما يقابل رياضياً المتراجحة المركبة: الحد الأدنى ≤ المتغير ≤ الحد الأعلى.

وتكتسب هذه الأداة أهمية بالغة في الأبحاث النفسية والمسوح الميدانية الاستقصائية المعقدة، حيث تتطلب المعايير السيكومترية تصنيف المفحوصين بناءً على مصفوفات الدرجات المعيارية (Z-scores أو T-scores). كما تظهر الفروق الدلالية جلياً عند مقارنة العامل BETWEEN بالمجموعات المنطقية المركبة التقليدية؛ فعلى الرغم من أن الصياغة الشرطية باستخدام الروابط المنطقية القياسية ومعاملات المقارنة الأكبر من واليساوي والأصغر من واليساوي تؤدي الوظيفة الحسابية ذاتها، إلا أن BETWEEN يوفر صياغة أكثر إيجازاً وأقل عرضة للبس التركيبي، مما يعزز المقروئية الأكاديمية للكود البرمجي ويخفض من التعقيد الإدراكي عند بناء استعلامات تصفية متداخلة متقدمة.

ومن المهم التأكيد في هذا السياق على التمايز المنهجي بين الدور الإجرائي للعامل BETWEEN كأداة لاختيار البيانات، والأساليب الإحصائية التحليلية؛ فالعامل في حد ذاته لا يحسب متوسطات ولا يستخرج انحرافات معيارية، بل يعمل كمرشح أولي ينظم فضاء العينة لتهيئتها للإجراءات الاستدلالية اللاحقة، مثل نماذج النماذج الخطية العامة أو الاختبارات التائية.

1.2 الأهمية المنهجية للعامل في تنظيف واستخراج البيانات

يمثل تنظيف البيانات مرحلة حرجة في دورة حياة البحث التجريبي، حيث تشير الأدبيات المنهجية إلى أن الجزء الأكبر من وقت الباحث الإحصائي يُستثمر في تنقية السجلات من الشوائب وإعداد المتغيرات التحليلية. وفي هذا المضمار، يؤدي العامل BETWEEN دوراً محورياً في عزل العينات والمشاركين الذين تقع قياساتهم ضمن فترات معيارية محددة سلفاً وفق الأطر النظرية للدراسة، مثل حصر المشاركين الذين تتراوح درجاتهم على مقياس بيك للاكتئاب ضمن فئة الاكتئاب المتوسط، أو استخراج أزمنة الرجع التي تقع ضمن النطاق الفسيولوجي المقبول واستبعاد الاستجابات الشاذة الناتجة عن تشتت الانتباه أو الأعطال التقنية في أجهزة التسجيل.

علاوة على ذلك، يُسهم الاستخدام المتقن لهذا العامل في رفع كفاءة التعامل مع قواعد البيانات الإحصائية الضخمة (Big Data). فمن خلال تصفية السجلات غير المطلوبة في مراحل المعالجة المبكرة، يتم تقليص حجم الجداول الممررة عبر الذاكرة، مما يحد من العبء الواقع على وسائط التخزين والمعالجات الدقيقة. وتبرز هذه الميزة بشكل استثنائي في السجلات الصحية الإلكترونية وقواعد البيانات السكانية التي تحتوي على ملايين القياسات الطولية المتكررة.

كما يُقلل العامل BETWEEN من احتمالية ارتكاب الأخطاء البشرية الشائعة التي تصاحب كتابة الشروط المنطقية المركبة. فعند استخدام المعاملات الرياضية المزدوجة يسهل الوقوع في هفوات منطقية كنسيان علامة التساوي أو عكس اتجاه إحدى المتراجحات، مما قد يؤدي إلى استبعاد غير مقصود لأطراف العينة، وهو ما يقود بدوره إلى تحيز العينة وتشويه النتائج النهائية للبحث العلمي.

2. البنية النحوية والتركيب البرمجي للعامل BETWEEN في SAS

2.1 الصيغة العامة وقواعد الصياغة النحوية

تتبع الصيغة العامة لاستخدام العامل الشرطي BETWEEN في نظام التحليل الإحصائي SAS بنية نحوية واضحة وموحدة تتكامل بسلاسة مع سياق التصفية البرمجية. تتجسد هذه الصيغة القياسية في التعبير التالي:

اسم_المتغير BETWEEN القيمة_الدنيا AND القيمة_العليا

حيث يمثل “اسم_المتغير” الحقل المراد اختباره، بينما تشير “القيمة_الدنيا” و”القيمة_العليا” إلى الحدود المغلقة الفاصلة للنطاق المستهدف. وتتطلب القواعد النحوية لـ SAS الالتزام الصارم بوجود الكلمة المفتاحية AND للفصل بين الحدين؛ إذ إن استخدام أي رابط آخر يؤدي إلى فشل فوري في التحليل النحوي للكود (Syntax Error) وظهور رسائل تحذيرية في سجل النظام.

ومن الركائز المنطقية الأساسية التي يجب مراعاتها هي مبدأ الفترة المغلقة (Closed Interval)؛ حيث يقوم المترجم المنطقي في SAS بتقييم الشرط على أنه يتحقق إذا كانت قيمة المتغير أكبر من أو تساوي الحد الأدنى وأصغر من أو تساوي الحد الأعلى في آن واحد. ولذلك، فإن القيم الواقعة على الأطراف تماماً لا تُهمل بل تُعد جزءاً أصيلاً من النتيجة المرجوة.

أما من حيث ترتيب الحدود، فالقاعدة القياسية المعيارية في البرمجة الإحصائية تقتضي وضع القيمة الصغرى أولاً تليها القيمة الكبرى لضمان الاتساق المنطقي. ومع ذلك، تجدر الإشارة إلى أن محرك لغة الاستعلام المهيكلة في SAS يتعامل بمرونة فريدة مع هذا الترتيب مقارنة ببعض المحركات الأخرى؛ حيث يستطيع إجراء PROC SQL في كثير من الإصدارات تقييم النطاق حتى وإن عُكست الحدود، إلا أن الاعتماد على هذه الميزة غير مستحسن برمجياً، لأن كتابة الحد الأكبر أولاً في بعض سياقات خطوة البيانات قد ينتج عنها نطاق فارغ يؤدي إلى استرجاع صفر من السجلات، وهو ما يمثل فشلاً دلالياً في تحقيق هدف الاستعلام.

2.2 الاستخدام عبر بيئات SAS المختلفة

يتيح نظام SAS توظيف العامل BETWEEN عبر بيئتين برمجيتين رئيسيتين: خطوة البيانات (DATA Step)، وإجراء الاستعلام الهيكلي (PROC SQL). ويكمن الاختلاف بين هاتين البيئتين في الكيفية التي يعالج بها المحرك الداخلي الشروط المنطقية، ومرحلة دورة المعالجة التي يتم فيها تنفيذ الشرط.

في بيئة خطوة البيانات (DATA Step)، يتم استدعاء العامل بشكل رئيسي عبر عبارة WHERE، حيث يتم فحص السجلات أثناء قراءتها من القرص وقبل إدخالها إلى متجه بيانات البرنامج (Program Data Vector – PDV). يتيح هذا التكامل التوافقي استبعاد السجلات غير المطابقة مبكراً جداً، مما يوفر موارد المعالجة المركزية. ومع ذلك، فإن استخدام العامل BETWEEN مباشرة داخل عبارة التخصيص الشرطية IF كان مقيداً في الإصدارات التاريخية لنظام SAS؛ حيث تتطلب عبارة IF استخدام المتراجحات المركبة الصريحة، على الرغم من أن الإصدارات الحديثة أصبحت أكثر مرونة في استيعاب التعبيرات المنطقية المتعددة.

على الجانب الآخر، يبرز إجراء PROC SQL كبيئة نموذجية تطبق المعايير القياسية للغة الاستعلام الهيكلية (ANSI SQL). وفي هذه البيئة، يعمل العامل BETWEEN بتوافق كامل مع مواصفات ANSI X3.135 ومعايير ISO، مما يجعل صياغة الأكواد متطابقة مع ما يُستخدم في قواعد البيانات العلائقية الكبرى مثل Oracle وDB2 وMicrosoft SQL Server. تتيح هذه البيئة إمكانات إضافية مثل الربط بين الجداول المختلفة، والتجميع اللحظي للبيانات، وتطبيق الشروط المعقدة ضمن بنية برمجية استعلامية مدمجة تتميز بالوضوح التحليلي وسهولة الصيانة.

3. تطبيق العامل BETWEEN داخل إجراء PROC SQL مع أمثلة عملية

3.1 إنشاء مجموعة البيانات وتجهيز بيئة الاختبار

لإرساء التطبيق العملي على أسس علمية واضحة، سنقوم بإنشاء مجموعة بيانات تجريبية تحاكي دراسة في علم النفس التجريبي، تشتمل على عينة من المفحوصين الذين خضعوا لاختبارات قياس زمن الرجع (Reaction Time) ودرجات مقياس القلق المعرفي. يتطلب بناء هذه البيئة توظيف خطوة بيانات معيارية واستخدام الكلمات المفتاحية DATALINES وINPUT لتعريف بنية المتغيرات وتغذية النظام بالسجلات الأولية.

يوضح المثال البرمجي التالي كيفية بناء جدول البيانات التجريبي في SAS:

DATA BehavioralStudy;
    INPUT SubjectID $ TreatmentGroup $ ReactionTime AnxietyScore;
    DATALINES;
SUBJ01 Control 245 42
SUBJ02 Control 198 38
SUBJ03 Active 312 55
SUBJ04 Active 280 48
SUBJ05 Placebo 220 35
SUBJ06 Control 350 62
SUBJ07 Active 205 29
SUBJ08 Placebo 290 50
SUBJ09 Control 180 31
SUBJ10 Active 265 45
;
RUN;

بعد إدخال البيانات، من الإجراءات المنهجية الموصى بها في تقاليد التحليل الإحصائي إجراء معاينة تدقيقية أولية للتأكد من سلامة المتغيرات وخلوها من أخطاء الإدخال الموضعي. ويتم ذلك باستدعاء الإجراء القياسي PROC PRINT لطباعة السجلات ومراجعتها في نافذة المخرجات، مما يضمن أن عمليات التصفية التالية ستبنى على مصفوفة بيانات موثوقة ومكتملة الخصائص.

3.2 استخراج الصفوف المحصورة ضمن نطاق عددي محدد

بمجرد إنشاء مجموعة البيانات وتثبيتها، يمكن تفعيل إجراء PROC SQL لعزل السجلات التي تقع ضمن فترات عددية دقيقة. لنفترض في هذا السياق أن البروتوكول التجريبي يقتضي استبعاد أزمنة الرجع الشديدة السرعة أو البطيئة جداً، والتركيز حصرياً على الأفراد الذين يتراوح زمن الرجع لديهم بين 200 و300 ميلي ثانية لتكوين المجموعة المرجعية المستهدفة.

يتم تطبيق هذا الاستعلام من خلال الكود التالي:

PROC SQL;
    SELECT SubjectID, TreatmentGroup, ReactionTime, AnxietyScore
    FROM BehavioralStudy
    WHERE ReactionTime BETWEEN 200 AND 300;
QUIT;

عند تنفيذ هذا الاستعلام، يشرع محرك PROC SQL في فحص كل صف على حدة؛ وتتم مطابقة الحالات بدقة بالغة. فالسجل الخاص بالمفحوص “SUBJ07” الذي حقق زمناً قدره 205 ميلي ثانية، والسجل “SUBJ10” بزمن 265 ميلي ثانية، والسجل “SUBJ04” بزمن 280 ميلي ثانية، والسجل “SUBJ08” بزمن 290 ميلي ثانية، كلها تقع بوضوح داخل هذا المجال. والملاحظة الجديرة بالاهتمام هنا هي حالة السجل “SUBJ05” الذي يمتلك زمناً قدره 220 ميلي ثانية، حيث يتم قبوله بسلاسة، ولو افترضنا وجود سجل يمتلك القيمة 200 أو 300 تماماً لتم تضمينه فوراً نظراً لشمولية الحدود المغلقة التي يفرضها العامل BETWEEN.

3.3 دمج العامل مع شروط إضافية في استعلامات PROC SQL

في الممارسات البحثية الميدانية، نادراً ما تقتصر التصفية على متغير واحد؛ بل تتداخل المتغيرات الديموغرافية والتجريبية لتحديد العينات الفرعية. يتيح إجراء PROC SQL مرونة عالية في دمج العامل BETWEEN مع الروابط المنطقية المركبة مثل AND وOR لفرز الظواهر المتشابكة، إلى جانب تطبيق عمليات التجميع واستخراج الإحصاءات الوصفية اللحظية.

يوضح المثال البرمجي التالي استعلاماً متقدماً يستخرج الحالات التي ينتمي فيها المفحوص إما لمجموعة العلاج النشط أو مجموعة المراقبة، شريطة أن يقع زمن الرجع بين 200 و300 ميلي ثانية، مع استبعاد درجات القلق المتطرفة بحصرها بين 30 و50 نقطة، ومن ثم ترتيب النتائج تنازلياً وفق درجة القلق:

PROC SQL;
    SELECT SubjectID, TreatmentGroup, ReactionTime, AnxietyScore
    FROM BehavioralStudy
    WHERE (ReactionTime BETWEEN 200 AND 300)
      AND (AnxietyScore BETWEEN 30 AND 50)
      AND TreatmentGroup IN (‘Active’, ‘Control’)
    ORDER BY AnxietyScore DESC;
QUIT;

كما يمكن تعميق التحليل عبر دمج العامل الشرطي مع عبارات التلخيص والتجميع؛ حيث يمكن للمحلل حساب متوسط أزمنة الرجع لكل مجموعة علاجية، مع حصر التقييم فقط في الأفراد الذين تنحصر درجات قلقهم ضمن النطاق المعياري عبر استخدام عبارتي GROUP BY وHAVING. يتيح هذا الدمج المتناغم بناء تقارير إحصائية دقيقة تقتطع التباينات غير المرغوبة قبل الانتقال إلى خطوات النمذجة الرياضية المتقدمة.

4. توظيف العامل BETWEEN في خطوة البيانات (DATA Step)

4.1 التصفية باستخدام عبارة WHERE في خطوة البيانات

تمثل خطوة البيانات (DATA Step) القلب النابض لنظام SAS، حيث تتيح للباحث التحكم الكامل في قراءة السجلات، وتعديل المتغيرات، وتكوين الجداول الفرعية المستخلصة من الجداول الكبرى. ويُعد استخدام العامل BETWEEN مع عبارة WHERE داخل خطوة البيانات من أكثر الاستراتيجيات كفاءة في استقطاع مجموعات البيانات الجزئية (Subsetting).

يتجسد التطبيق القياسي لهذا الأسلوب في الكود التالي:

DATA FilteredCohort;
    SET BehavioralStudy;
    WHERE AnxietyScore BETWEEN 35 AND 55;
RUN;

تكمن الأهمية الحاسوبية الكبرى لعبارة WHERE المقترنة بالعامل BETWEEN في آلية المعالجة على مستوى المدخلات (Input Processing Optimization). فعندما يصادف محرك SAS عبارة WHERE، فإنه يقوم بتطبيق التصفية المنطقية في مرحلة القراءة المباشرة من وسيط التخزين وقبل تحميل السجل بالكامل إلى متجه بيانات البرنامج (PDV). هذا يعني أن الصفوف التي لا تستوفي شرط النطاق العددي يتم إسقاطها فوراً دون تخصيص دورة حاسوبية لمعالجتها أو استهلاك مساحة في الذاكرة الحية لنقلها، مما يخفض بشكل جذري استهلاك موارد وحدة المعالجة المركزية (CPU Cycles) ويسرع زمن إنجاز العمليات الإحصائية التجهيزية.

4.2 المقارنة بين عبارة WHERE وعبارة التخصيص الشرطية IF

يثور في كثير من الأحيان جدل منهجي وبرمجي بين ممارسي التحليل الإحصائي في بيئة SAS حول الفروق الجوهرية بين عبارة WHERE وعبارة التخصيص الشرطية IF. ورغم أن كلتيهما تستطيعان أداء وظيفة التصفية واستبقاء السجلات المطلوبة، إلا أن الفروق بينهما تمتد إلى الجوانب الهيكلية والنحوية لتنفيذ العمليات.

في البنية الكلاسيكية للغة SAS، صُممت عبارة WHERE لتتعامل مع المتغيرات القائمة بالفعل في مجموعة البيانات المصدرية أثناء مرحلة القراءة الأولية، وهي العبارة التي تدعم العامل BETWEEN بصيغته الصريحة المباشرة. في المقابل، فإن عبارة IF التخصيصية (Subsetting IF) تعمل داخل دورة تنفيذ خطوة البيانات، أي بعد تحميل السجل إلى متجه بيانات البرنامج (PDV) وحساب أي متغيرات جديدة تم إنشاؤها عبر معادلات رياضية داخل الخطوة ذاتها.

تاريخياً، لم تكن عبارة IF تدعم العامل BETWEEN بصيغته اللفظية في الإصدارات الأقدم، وكان البديل المنطقي القياسي المتبع هو استخدام الصيغة الرياضية للمتراجحة المركبة على النحو التالي:

DATA CalculatedCohort;
    SET BehavioralStudy;
    LogRT = LOG(ReactionTime);
    IF 5.30 <= LogRT <= 5.75;
RUN;

تُظهر هذه المقارنة أن الاختيار بين WHERE و IF ليس مجرد تفضيل شخصي، بل قرار تقني يعتمد على موقع المتغير المراد اختباره؛ فإذا كان المتغير موجوداً في الجدول المصدري، فإن عبارة WHERE المقترنة بـ BETWEEN توفر أداءً حاسوبياً أسرع بفضل التصفية المبكرة. أما إذا كان المتغير نتاج عملية حسابية مستحدثة داخل خطوة البيانات (كالمتغير LogRT في المثال أعلاه)، فإن استخدام عبارة IF مع المتراجحات المركبة يغدو هو السبيل الحتمي لتحقيق التصفية المطلوبة بدقة وموثوقية.

5. التعامل مع المتغيرات النصية والأبجدية باستخدام BETWEEN

5.1 آلية الترتيب الأبجدي والفرز المعجمي في SAS

لا يقتصر عمل العامل BETWEEN في نظام التحليل الإحصائي SAS على المتغيرات العددية والكمية فحسب، بل يمتد بكفاءة عالية ليشمل المتغيرات الحرفية والنصية (Character Variables). وتعتمد المعالجة المنطقية للنصوص في هذا السياق على مبادئ الفرز المعجمي (Lexicographical Sorting) وسلاسل الترتيب المعتمدة في بيئة التشغيل الحاسوبية، وتحديداً معيار الترميز الأمريكي الموحد لتبادل المعلومات (ASCII) أو نظام EBCDIC في بيئات الحواسيب المركزية الكبيرة (Mainframes).

عند تقييم شرط يشتمل على نصوص، يقوم محرك SAS بمقارنة الرموز والمحارف حرفاً بحرف من اليسار إلى اليمين استناداً إلى القيم الرقمية الثنائية المخصصة لكل رمز في جدول الترميز. ففي نظام ASCII، تمتلك الأحرف اللاتينية الكبيرة (Uppercase) قيماً عددية أصغر من نظيراتها الصغيرة (Lowercase)، مما يعني أن الحرف ‘Z’ يُعد أصغر معجمياً من الحرف ‘a’.

علاوة على ذلك، تلعب المسافات الفارغة (Blanks) البادئة أو اللاحقة دوراً حاسماً في تقييم شروط النطاق النصي. فنظام SAS يعامل المسافة الفارغة كرمز يسبق كافة المحارف الأبجدية في جدول الترتيب. وبالتالي، إذا احتوى المتغير النصي على مسافات غير مرئية ناتجة عن استيراد خاطئ للبيانات، فقد يؤدي ذلك إلى انزياح موضعي يُخرج النص من النطاق المحدد بواسطة BETWEEN، وهو ما يفرض على الباحثين ضرورة إدراك هذه الدقائق التقنية لضمان سلامة التصفية المعجمية وتفادي الاستبعاد العشوائي للسجلات الاستبيانية.

5.2 أمثلة تطبيقية على فرز المتغيرات الحرفية

لتوضيح كيفية توظيف العامل BETWEEN مع المتغيرات النصية في الأبحاث السلوكية، لنفترض وجود قاعدة بيانات تحتوي على أسماء المفحوصين أو الفئات التشخيصية للأمراض النفسية، ونرغب في استخراج عينة فرعية تشمل أسماء العائلات التي تبدأ معجمياً من الحرف ‘C’ وحتى الحرف ‘M’.

يوضح المثال البرمجي التالي كيفية تنفيذ هذه التصفية المعجمية بدقة:

DATA DiagnosticRegistry;
    INPUT PatientName $ DiagnosisCode $ SeverityLevel $;
    DATALINES;
Clark F41.1 Moderate
Adams F32.0 Mild
Evans F43.2 Severe
Miller F33.1 Moderate
Baker F10.2 Severe
Hansen F40.0 Mild
Taylor F50.0 Severe
;
RUN;

PROC SQL;
    SELECT PatientName, DiagnosisCode, SeverityLevel
    FROM DiagnosticRegistry
    WHERE PatientName BETWEEN ‘C’ AND ‘N’;
QUIT;

تجدر الإشارة هنا إلى ملاحظة نحوية ومنطقية بالغة الأهمية: عند تحديد الحد الأعلى للحرف ‘M’ في الكلمات، فإن وضع ‘M’ بمفردها كحد أقصى سيؤدي إلى استبعاد الأسماء التي تبدأ بالحرف ذاته متبوعاً بأحرف أخرى؛ لأن الاسم ‘Miller’ يُعد معجمياً أكبر من المحرف الفردي ‘M’. ولذلك تم وضع الحد الأعلى ‘N’ أو استخدام صيغ نصية متقدمة لضمان شمول كافة الأسماء الواقعة ضمن الفئة المستهدفة.

كما تفرض حساسية حالة الأحرف (Case Sensitivity) في اللغات الأجنبية تحدياً إضافياً؛ إذ يتطلب التحييد المنهجي لهذا المتغير استخدام دوال المعالجة النصية مثل الدالة UPCASE أو LOWCASE لتوحيد الحالة قبل تطبيق العامل BETWEEN، كما هو موضح أدناه:

PROC SQL;
    SELECT * FROM DiagnosticRegistry
    WHERE UPCASE(PatientName) BETWEEN ‘CLARK’ AND ‘MILLER’;
QUIT;

أما عند التعامل مع النصوص العربية المشفرة بترميزات اليونيكود الحديثة (مثل UTF-8)، فإن الترتيب الأبجدي يتبع بدقة متوالية الحروف في المعجم العربي، مع ضرورة الانتباه إلى الفروق بين الألف المهموزة والمجردة، والتاء المربوطة والهاء، لضمان استقرار نتائج الفرز وعدم تشويه الفئات البحثية المستخرجة.

6. تصفية المتغيرات الزمنية والتواريخ باستخدام العامل BETWEEN

6.1 تمثيل التواريخ والأوقات كنواة رقمية في SAS

تتميز بنية نظام التحليل الإحصائي SAS بمنهجية فريدة وبارعة في إدارة المتغيرات الزمنية والتواريخ؛ حيث لا تُعامل التواريخ كسلاسل نصية جامدة، بل يتم تحويلها داخلياً إلى قيم عددية متصلة تمثل عدد الأيام المنقضية منذ نقطة أصل مرجعية موحدة (Reference Epoch)، وهي تاريخ الأول من يناير عام 1960 ميلادي (01JAN1960). وبناءً على هذه النواة الرقمية، فإن تاريخ 02JAN1960 يُمثل بالرقم 1، في حين تُمثل التواريخ السابقة لنقطة الأصل بأرقام سالبة متتالية.

يتيح هذا البناء الرياضي للعامل BETWEEN العمل بأقصى درجات الكفاءة التوافقية عند تصفية التواريخ؛ فالعملية في حقيقتها تتحول إلى مقارنة عددية بسيطة وسريعة للغاية بين أرقام صحيحة داخل المعالج الحاسوبي. ومع ذلك، تشترط القواعد النحوية في SAS صياغة التواريخ المستهدفة كـ ثوابت تاريخية محددة (Date Literals) عبر إحاطة التاريخ بعلامات تنصيص متبوعة بحرف التعريف d، مثل الصيغة المعيارية: ’01JAN2023’d.

يضمن الالتزام بهذه الصياغة قيام مترجم SAS بتحويل السلسلة النصية للتاريخ فورياً إلى القيمة العددية المقابلة لها في تقويم النظام، مما يحقق التوافق الرياضي الكامل بين القيمة المسجلة في قاعدة البيانات الميدانية والحدود الزمنية المعرفة في الاستعلام الإحصائي، ويمنع تماماً أخطاء عدم توافق الأنواع (Type Mismatch Errors).

6.2 أمثلة على تصفية السجلات السريرية والزمنية

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

يوضح الكود التالي كيفية إنشاء بيانات التواريخ وتصفيتها باستخدام العامل BETWEEN في خطوة البيانات وإجراء الاستعلام:

DATA ClinicalTrials;
    INPUT PatientID $ EnrollmentDate : DATE9. BaselineScore FollowUpScore;
    FORMAT EnrollmentDate DATE9.;
    DATALINES;
PT001 15JAN2023 65 45
PT002 01MAR2023 72 50
PT003 28FEB2023 58 52
PT004 15JUL2023 80 60
PT005 10MAY2023 69 40
PT006 01AUG2023 74 65
PT007 30JUN2023 61 48
;
RUN;

PROC SQL;
    SELECT PatientID, EnrollmentDate, BaselineScore, FollowUpScore
    FROM ClinicalTrials
    WHERE EnrollmentDate BETWEEN ’01JAN2023’d AND ’30JUN2023’d;
QUIT;

في هذا التطبيق العملي، يتم استرجاع السجلات التي تقع تواريخ التسجيل الخاصة بها ضمن النافذة المحددة من 1 يناير 2023 إلى 30 يونيو 2023 بدقة مطلقة، بما يشمل المرضى المسجلين في اليوم الأخير تماماً (30JUN2023). ويستبعد الاستعلام الحالات التي سُجلت في شهري يوليو وأغسطس لكون قيمها العددية تتجاوز الحد الأعلى للفترة المحددة. كما يمكن استخدام تنسيقات العرض (FORMAT) للحفاظ على المظهر المقروء للتواريخ في الجداول الناتجة دون المساس بجوهرها الرقمي المدمج في العمليات الحسابية.

7. سلوك العامل BETWEEN مع القيم المفقودة (Missing Values)

7.1 التمثيل الرياضي للقيم المفقودة في نظام SAS

يُعد التعامل مع القيم المفقودة (Missing Values) أحد أدق الجوانب التقنية وأكثرها خطورة في تحليل البيانات باستخدام نظام التحليل الإحصائي SAS. فمن الناحية الرياضية والمعمارية، يتعامل محرك SAS مع القيمة المفقودة للمتغيرات الرقمية (والتي يُرمز لها بنقطة فردية .) باعتبارها أصغر قيمة عددية ممكنة في النظام، أي أنها تُعامل منطقياً كقيمة سالبة لا نهائية تتجاوز في صغرها أصغر عدد حقيقي سالب يمكن أن يتعامل معه الحاسوب.

يولد هذا التمثيل الرياضي معضلة إحصائية فادحة عند استخدام العامل BETWEEN إذا لم يكن المحلل على دراية عميقة بسلوك النظام. فإذا قام الباحث بصياغة شرط يتضمن نطاقاً عدparamت سالبة، كأن يكتب:

WHERE Score BETWEEN -10 AND 50;

فإن المترجم المنطقي لـ SAS سيختبر ما إذا كانت القيمة المفقودة تقع ضمن هذا النطاق، ونظراً لأن النقطة (.) أصغر من -10 وليست محصورة بينها وبين 50، فإنها لن تُضمن في هذا المثال المحدد. ولكن، إذا تمت كتابة الشرط بصيغة النفي كما سنرى لاحقاً، أو إذا تضمن النطاق حداً أدنى يبدأ من القيمة المفقودة ذاتها، فإن النتائج ستتأثر جذرياً.

بالإضافة إلى ذلك، يدعم نظام SAS ما يُعرف بالقيم المفقودة الخاصة (Special Missing Values) المرمزة من .A إلى .Z بالإضافة إلى الرمز ._، والتي تُستخدم في البحوث الاستقصائية لتمييز أسباب الفقدان (مثل: عدم الإجابة، أو عدم انطباق السؤال، أو رفض المشاركة). وتُعامل هذه الرموز أيضاً كقيم سالبة تقع جميعها في الترتيب الرياضي قبل الأرقام الحقيقية، مما يفرض توخي الحذر الشديد لمنع تسللها العرضي إلى العينات المصفاة وتلويث المؤشرات الإحصائية الناتجة.

7.2 استراتيجيات استبعاد وتحييد القيم المفقودة

لحماية النماذج الإحصائية وتفادي التحيز الناتج عن الإدراج أو الاستبعاد غير المقصود للبيانات الناقصة، تقتضي أفضل الممارسات المنهجية تدعيم شروط العامل BETWEEN بضوابط تحقق مسبقة وصريحة. ومن أبسط هذه الطرق وأكثرها فاعلية، إضافة شرط استبعاد القيم المفقودة مباشرة داخل عبارة التصفية عبر استخدام التركيب القياسي IS NOT MISSING أو محدد المقارنة الرياضي الصريح.

يوضح الكود التالي المنهجية الآمنة لتصفية الدرجات الميدانية مع تحييد كافة أنواع القيم المفقودة:

PROC SQL;
    SELECT SubjectID, ReactionTime, AnxietyScore
    FROM BehavioralStudy
    WHERE AnxietyScore BETWEEN 30 AND 60
      AND AnxietyScore IS NOT MISSING;
QUIT;

كما يمكن في بيئة خطوة البيانات توظيف الدوال الإحصائية المبيتة مثل الدالة NMISS للتحقق المسبق من عدد القيم المفقودة عبر مجموعة من المتغيرات المتداخلة قبل تمريرها للشرط. إن مثل هذا التحصين البرمجي يقي المحلل من الوقوع في فخاخ النطاقات المنطقية المشوهة، ويضمن أن عينة الدراسة النهائية تعكس فقط المشاركين الذين يمتلكون استجابات فعلية وكاملة تفي بالمعايير السيكومترية المحددة للبحث العلمي.

8. تطبيقات العامل العكسي NOT BETWEEN والعمليات المركبة

8.1 صياغة واستخدام العامل المنفي NOT BETWEEN

يمثل العامل المنفي NOT BETWEEN الأداة التكميلية المعاكسة للمحمول المنطقي الأساسي؛ حيث يُستخدم لتحديد واستخراج السجلات التي تقع تماماً خارج حدود النطاق المحدد. ويستند الأساس المنطقي لهذا العامل في التطبيقات الإحصائية إلى كشف القيم الشاذة والمتطرفة (Outliers) التي تبعد عن المتوسط الحسابي بمسافات تتجاوز الانحرافات المعيارية المقبولة، أو استبعاد النطاقات المرجعية الطبيعية للتركيز على الحالات المرضية الحادة.

من الناحية الرياضية، يتحول الشرط:

WHERE Score NOT BETWEEN a AND b;

إلى متراجحة منطقية منفصلة بالرابط OR تعني حرفياً: أن تكون القيمة أصغر قطعاً من الحد الأدنى، أو أكبر قطعاً من الحد الأعلى (Score < a OR Score > b). وتتميز هذه الصيغة بأنها تستبعد القيمتين الطرفيتين a و b من النتائج المسترجعة، مما يجعل التصفية تقتصر حصرياً على الأطراف الخارجية للمجال.

وهنا تبرز مجدداً الخطورة القصوى لقضية القيم المفقودة الرقمية في SAS التي جرى استعراضها سابقاً؛ فعند تنفيذ الشرط المنفي، وبما أن القيمة المفقودة (.) أصغر رياضياً من أي قيمة عددية حقيقية، فإن مترجم SAS سيعتبر القيمة المفقودة أصغر من الحد الأدنى a، وبالتالي فإن شرط النفي سينطبق عليها، مما يؤدي إلى إدراج كافة القيم المفقودة تلقائياً ضمن نتائج الاستعلام ما لم يتم استبعادها صراحة. ويعد هذا السلوك من أشهر المصادر غير المرئية لتشويه التحليلات الإحصائية لدى المبرمجين المبتدئين في SAS.

لتجنب هذا الانزلاق المنهجي، يجب إلزام الشرط بالصيغة الدفاعية التالية دائماً:

DATA OutlierCohort;
    SET BehavioralStudy;
    WHERE (ReactionTime NOT BETWEEN 200 AND 300)
      AND ReactionTime IS NOT MISSING;
RUN;

8.2 دمج العامل مع العوامل المتقدمة (IN, LIKE, CONTAINS)

يتيح نظام SAS للباحثين بناء نماذج تصفية استعلامية مركبة وهجينة تدمج بسلاسة بين العامل BETWEEN وعوامل المقارنة المتقدمة الأخرى، مثل عامل التطابق المتعدد IN، وعامل مطابقة الأنماط النصية LIKE، ومحدد الاحتواء الجزئي CONTAINS. هذا التناغم يتيح بناء معايير اختيار دقيقة تحاكي التنوع السكاني في التجارب الحيوية والنفسية الكبرى.

يوضح المثال البرمجي التالي كيفية دمج هذه المحمولات المنطقية المتعددة في استعلام إحصائي موحد:

PROC SQL;
    SELECT SubjectID, TreatmentGroup, ReactionTime, AnxietyScore
    FROM BehavioralStudy
    WHERE (ReactionTime BETWEEN 190 AND 320)
      AND TreatmentGroup IN (‘Active’, ‘Placebo’)
      AND SubjectID LIKE ‘SUBJ0%’
    ORDER BY SubjectID;
QUIT;

عند بناء مثل هذه الشروط المركبة، يكتسب الفهم العميق لـ أولويات العمليات المنطقية (Operator Precedence) أهمية قصوى؛ فالرابط المنطقي AND يمتلك أولوية تقييم تسبق الرابط OR في البنية التفسيرية للغة SAS. ولذلك، فإن الاعتماد على الاستخدام الصريح للأقواس الدائرية (Parentheses) يعد واجباً منهجياً لترسيم حدود العمليات وتفادي الأخطاء الدلالية (Semantic Errors) التي قد تغير مسار الاستعلام دون إطلاق أي رسائل تحذيرية في سجل النظام.

9. مقارنة الأداء الحاسوبي والكفاءة التخزينية

9.1 كفاءة الفهارس (Indexes) مع العامل BETWEEN

عند الانتقال بالتحليلات الإحصائية من البيئات المعملية الصغيرة إلى قواعد البيانات الضخمة التي تحتوي على مئات الملايين من السجلات، تصبح كفاءة المعالجة وسرعة التنفيذ معياراً فاصلاً في تقييم جودة الكود البرمجي. وفي هذا المستوى، يبرز التفاعل المتقدم بين العامل BETWEEN والفهارس البسيطة والمركبة (SAS Indexes) كأحد أقوى مسارات التحسين الحاسوبي.

يمتلك محرك تحسين الاستعلامات في SAS القدرة على استخدام الفهارس الثنائية القائمة على شجرة B-Tree للوصول المباشر إلى السجلات المطلوبة عبر النطاقات المحددة بواسطة BETWEEN، بدلاً من اللجوء إلى القراءة التتابعية الشاملة لكامل ملف البيانات (Table Scan). وعندما يتم تفعيل الفهرس، يستطيع المحرك تحديد موقع السجل الأول الذي يحقق الحد الأدنى من النطاق فوراً، ومن ثم القراءة المتسلسلة للسجلات حتى الوصول إلى الحد الأقصى، ليتوقف بعدها مباشرة عن مسح بقية الجدول.

ولتتبع هذا السلوك التشغيلي وتدقيق خطة تنفيذ الاستعلام (Query Execution Plan)، يوفر نظام SAS الخيار النظامي MSGLEVEL=I، والذي يُلزم النظام بطباعة ملاحظات توضيحية مفصلة في نافذة السجل (SAS Log) تبين ما إذا كان الفهرس قد تم استغلاله بالفعل لتنفيذ شرط BETWEEN أم تم تجاوزه، كما يظهر في الإجراء التالي:

OPTIONS MSGLEVEL=I;

PROC SQL;
    SELECT SubjectID, ReactionTime
    FROM BehavioralStudy
    WHERE ReactionTime BETWEEN 200 AND 280;
QUIT;

OPTIONS MSGLEVEL=N;

وتشير الدراسات المرجعية في هندسة برمجيات SAS إلى أن استخدام العامل BETWEEN عبر متغير مفهرس يحقق تطابقاً تاماً في سرعة التنفيذ مع المتراجحات الصريحة المقترنة بالرابط AND، مما يؤكد أن اختيار BETWEEN يمنح الباحث نقاءً في الصياغة اللغوية دون أي تفريط في الأداء الحسابي والتشغيلي للنظام.

9.2 إدارة الذاكرة في قواعد البيانات الضخمة

لا يقتصر أثر التصفية المنهجية باستخدام العامل BETWEEN على تسريع المعالجة فحسب، بل يمتد بشكل محوري إلى تحسين إدارة الذاكرة الحية (RAM) وخفض عمليات الإدخال والإخراج للقرص الصلب (I/O Operations). فعند التعامل مع قواعد بيانات إحصائية فائقة السعة، يؤدي الاستخراج المبكر للحالات الواقعة ضمن النطاق المستهدف إلى تقليص الأحجام الممررة للجداول المؤقتة المخزنة في مكتبة العمل الفورية (WORK Library).

تكتسب هذه الكفاءة بعداً استثنائياً في بيئات الحوسبة السحابية الحديثة الموزعة مثل منصة SAS Viya ومحرك المعالجة التحليلية السحابية الموزعة (Cloud Analytic Services – CAS). ففي هذه البنى المتقدمة، يتم توزيع البيانات عبر عدة عقد حاسوبية (Worker Nodes)؛ ويؤدي تطبيق شرط BETWEEN عبر عبارات التصفية التوزيعية إلى تحجيم كميات البيانات المتبادلة عبر شبكة الحواسيب بين العقد ووحدة التحكم الرئيسية، مما يمنع حدوث اختناقات في تدفق الذاكرة ويضمن استجابة فورية للتحليلات الإحصائية المتقدمة والنمذجة التنبؤية المعقدة.

10. الأخطاء الشائعة واستراتيجيات استكشاف الأخطاء وتصحيحها

10.1 الأخطاء المنطقية والنحوية الأكثر تكراراً

على الرغم من البساطة الظاهرية لصياغة العامل BETWEEN، إلا أن الممارسة التطبيقية في البيئات الأكاديمية تكشف عن وقوع العديد من المحللين في أخطاء دلالية ونحوية تؤثر سلباً على سلامة النتائج وتماسكها المنهجي. ومن أبرز هذه المزالق:

  • عكس الترتيب المنطقي للحدود: وضع القيمة العليا قبل القيمة الدنيا في بيئة خطوة البيانات (مثل: WHERE Score BETWEEN 100 AND 50). يؤدي هذا الترتيب المعكوس في معظم محركات DATA Step إلى تقييم الشرط كقيمة مستحيلة رياضياً، مما يسفر عن استخراج مجموعة بيانات فارغة (Zero Observations) دون أن يصدر النظام أي رسالة خطأ صريحة، لأن الصيغة نحوية سليمة رغم خطئها الدلالي.
  • الخلط بين أنواع البيانات المقارنة: محاولة مقارنة متغير نصي بنطاقات عددية، أو إغفال صيغة ثوابت التاريخ (Date Literals) عند تصفية الأزمنة، مما يؤدي إلى حدوث تحويل ضمني غير متوافق (Type Conversion) ينتج عنه تجميد الاستعلام أو صدور تحذيرات ملء السجل بالأخطاء.
  • إهمال الطبيعة الشاملة للحدود: نسيان أن العامل BETWEEN هو فترة مغلقة تشتمل على الأطراف. فإذا كان الهدف المنهجي يستلزم اختيار الأفراد الذين تزيد درجاتهم قطعياً عن الحد الأدنى وتقل قطعياً عن الحد الأعلى، فإن استخدام BETWEEN سيؤدي إلى تضخيم حجم العينة عبر ضم الحالات الحدية، وهو ما يفرض استبدالها بالمتراجحات الصريحة الصارمة (> و <).

10.2 منهجية التحقق وتدقيق الاستعلامات الإحصائية

لضمان أعلى معايير الجودة العلمية وقابلية تكرار النتائج (Reproducibility) في البحوث الإحصائية، يتعين على الباحث اتباع بروتوكول تدقيق صارم وموثق للتحقق من سلامة عمليات التصفية. تبدأ هذه المنهجية بالقراءة المتفحصة والتفسير الدقيق لكافة الرسائل، والتحذيرات، والملاحظات الواردة في سجل النظام (SAS Log)؛ حيث يُعد السجل الشاهد الأساسي على عدد المشاهدات التي تمت قراءتها ومقارنتها بعدد المشاهدات المكتوبة في الجدول النهائي المستهدف.

علاوة على ذلك، يُنصح بتطبيق الإجراء التكراري PROC FREQ أو الإجراء الوصفي PROC MEANS قبل عملية التصفية وبعدها، لمقارنة التوزيع التكراري وفحص مجالات المتغيرات ومستويات الانتشار. يتيح هذا الإجراء للباحث التأكد البصري والرياضي من أن الحد الأدنى والحد الأقصى للبيانات المتبقية يقعان تماماً ضمن النطاق النظري المحدد بواسطة العامل BETWEEN، وخلو البيانات المصفاة من أي قيم مفقودة متسللة.

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

خلاصة واستنتاجات

قدم هذا المقال الأكاديمي الشامل استعراضاً تحليلياً وبنيوياً دقيقاً لكيفية توظيف العامل الشرطي BETWEEN داخل نظام التحليل الإحصائي SAS، مبيناً دوره المحوري كأداة ترشيح وتصفية منطقية تعتمد على مبدأ الفترات المغلقة الشاملة لكلا الحدين الأدنى والأعلى. وقد أوضحت التحليلات البرمجية والتطبيقية المقدمة تكامل هذا العامل بسلاسة فائقة داخل كل من خطوة البيانات (DATA Step) عبر عبارة WHERE لتحسين القراءة المبكرة للمدخلات، وإجراء الاستعلام الهيكلي (PROC SQL) المتوافق مع معايير ANSI SQL الدولية.

كما تم تسليط الضوء على الخصائص المتقدمة لهذا العامل في إدارة المتغيرات المعجمية والأبجدية بالاستناد إلى جداول الترميز، ومعالجة التواريخ والبيانات الزمنية كنواة عددية دقيقة مستندة إلى تقويم النظام المعياري. وتوقف المقال بشكل خاص أمام السلوك الحرج والمخاطر الإحصائية المترتبة على التعامل مع القيم المفقودة، وضرورة تحصين الاستعلامات بشروط نفي صريحة لحماية النماذج الاستدلالية من التحيز وتلوث المعطيات.

إن إتقان توظيف العامل BETWEEN لا ينعكس إيجابياً فقط على جودة الكود البرمجي ونقائه النحوي، بل يمتد ليشكل ركيزة أساسية في رفع كفاءة استغلال الذاكرة وتسريع زمن التنفيذ عبر قواعد البيانات الضخمة، مما يجعله مهارة تقنية ومنهجية حتمية لكل باحث يسعى إلى إنجاز تحليلات إحصائية رصينة، موثوقة، وقابلة للتكرار في شتى الميادين العلمية المعاصرة.

المراجع

  • المنيزل، عبد الله فلاح، والعتوم، عدنان يوسف. (2010). مناهج البحث في العلوم التربوية والنفسية. دار إثراء للنشر والتوزيع.
  • ANSI. (1992). Database Language SQL (ANSI X3.135-1992 / ISO/IEC 9075:1992). American National Standards Institute.
  • Cody, R. (2018). Cody’s Data Cleaning Techniques Using SAS (3rd ed.). SAS Institute Inc.
  • Delwiche, L. D., & Slaughter, S. J. (2019). The Little SAS Book: A Primer (6th ed.). SAS Institute Inc.
  • SAS Institute Inc. (2020). SAS 9.4 SQL Procedure User’s Guide (4th ed.). SAS Institute Inc. https://documentation.sas.com
  • SAS Institute Inc. (2021). SAS 9.4 Language Reference: Concepts (6th ed.). SAS Institute Inc.
★

تقييم هذا المحتوى

5.0 / 5 • 7 تقييمات

اقتباس هذا المقال

looti, M. (2026, أكتوبر 20). كيفية استخدام العامل BETWEEN في SAS (مع أمثلة). عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-use-between-operator-in-sas-with-examples/
looti, Mohammed. “كيفية استخدام العامل BETWEEN في SAS (مع أمثلة).” عرب سايكلوجي, 20 أكتوبر 2026, https://arabpsychology.com/statistics/how-to-use-between-operator-in-sas-with-examples/.
looti, Mohammed. “كيفية استخدام العامل BETWEEN في SAS (مع أمثلة).” عرب سايكلوجي. أكتوبر 20, 2026. https://arabpsychology.com/statistics/how-to-use-between-operator-in-sas-with-examples/.