المسارات
/
R
R
/
المنهج
/
القيم المنطقية
ال

القيم المنطقية في R

1 تمرين

نبذة عن القيم المنطقية

القيم المنطقية في R

تُمثَّل القيم الصحيحة أو الخاطئة بالنوع logical. وهو لا يحتوي إلا على قيمتين: TRUE وFALSE.

TRUE
#> [1] TRUE
FALSE
#> [1] FALSE
typeof(TRUE)
#> [1] "logical"

العوامل المنطقية

هناك خمسة عوامل منطقية في R.

!TRUE # FALSE (not)
TRUE && FALSE # FALSE (scalar and)
TRUE || FALSE # TRUE (scalar or)

TRUE & FALSE # FALSE (vector and)
TRUE | FALSE # TRUE (vector or)

‏&& و& هما العاملان المنطقيان «و». ويُقيَّمان إلى TRUE إذا كان التعبيران على كلا جانبي && هما TRUE.

‏|| و| هما العاملان المنطقيان «أو». ويُقيَّمان إلى TRUE إذا كان التعبير على إحدى جانبي || هو TRUE.

لاحظ أن هناك مجموعتين من عاملي «و»/«أو».

  • الصيغتان ذواتا الحرفين المزدوجين تعملان على قيم مفردة.
  • أما الصيغتان ذواتا الحرف الواحد فتعملان على المتجهات عنصرًا بعنصر، وتُرجعان متجهًا من القيم المنطقية.

سيصبح هذا التمييز مهمًّا، وأوضح على الأرجح، في مفهوم vector-filtering.

استخدام & و| على قيم مفردة ينجح في المثال أعلاه، لأنها تُعامَل كمتجهات بطول 1. غير أن السلوك يختلف اختلافًا طفيفًا عن عاملي الحرفين المزدوجين، إذ إن الأخيرين وحدهما يعملان بالتقييم القصير: لا تُقيَّم القيمة على اليمين إذا كانت القيمة على اليسار كافية لتحديد النتيجة. وبالتالي فإن TRUE || anything تكون دائمًا TRUE مهما كان التعبير المنطقي الذي يمثله anything، فيُتجاهَل anything.

استخدام && أو || على متجهات (بطول 2 أو أكثر) يعني أن العنصر الأول وحده يُستخدم في المقارنة، ما يُنتج قيمة TRUE/FALSE واحدة وربما رسالة تحذير. هذا على الأرجح ليس ما كنت تقصده.

‏! هو العامل المنطقي للنفي. فهو يبادل بين القيمتين TRUE وFALSE.

!TRUE
#> [1] FALSE
!FALSE
#> [1] TRUE

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

(TRUE || FALSE) && (FALSE && TRUE)
#> [1] FALSE

TRUE || FALSE && (FALSE && TRUE)
#> [1] TRUE

لا يوجد عامل بيني لعملية الانفصال الحصري (أي A أو B، وليس كليهما). ويمكن استخدام الدالة xor() في هذه الحالة.

xor(TRUE, FALSE)
#> [1] TRUE
xor(TRUE, TRUE)
#> [1] FALSE
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم القيم المنطقية