تعامل مع القيم المفقودة على أنها صفر في جملة SAS حيث

StackOverflow https://stackoverflow.com/questions/1040543

  •  22-07-2019
  •  | 
  •  

سؤال

هل هناك ما يعادل وظيفة Oracle NVL في SAS؟

على سبيل المثال، إذا كان لدي جملة حيث في SAS تقول:

where myVar > -2;

لن يتضمن أي صفوف تحتوي على myVar = .

إذا كنت أرغب في التعامل مع القيم المفقودة على أنها صفر، يجب أن أقول:

where myVar > -2 or missing( myVar )

أود أن أكون قادرًا على القيام بشيء مثل:

where NVL( myVar, 0 ) > -2 // or some SAS equivalent

هل هناك شيء من هذا القبيل في SAS؟

هل كانت مفيدة؟

المحلول

وظيفة تتجمع قيام بهذه المهمة.

where coalesce(myVar,0) > -2

ولست متأكدا إذا أصبحت وظيفة متوفرة في SAS 9، لذلك إذا كان لديك إصدار SAS القديم حقا هذا قد لا تعمل.

نصائح أخرى

يعد استخدام وظيفة التجميع هو الطريقة الصحيحة للقيام بذلك.

ولكن إذا كان لديك إصدار قديم من SAS حيث لم يتم تنفيذ الدمج، فيمكنك استخدام هذه الخدعة:

where sum(myVar,0) > -2

إذا كنت تستخدم دالة المجموع في SAS للإضافة، فإن أي رقم غير مفقود في الجمع سيجبر النتيجة على أن تكون غير مفقودة.

وبالتالي فإن إضافة 0 مع دالة المجموع سوف يحول القيمة المفقودة إلى 0، وستبقى القيم غير المفقودة دون تغيير.

والشيء الوحيد الذي يمكنك القيام به هو ذ مثل مجموعة varlistname VAR1 var2 var3 varn. إذا مجموعة <>. ثم الإخراج؛

ووسوف ouput مجموعات البيانات التي لديها القيم غير مفقودة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top