المنطق المتجهي - الجزء الثاني
جزء من قسم الأساسيات في رحلة R على Coddy. الدرس 21 من 78.
كما أن لـ AND وOR نسخًا متجهية، فإن عامل NOT يعمل أيضًا عنصرًا بعنصر على المتجهات. عند تطبيق ! على متجه من القيم المنطقية، فإنه يعكس كل عنصر على حدة.
passed <- c(TRUE, FALSE, TRUE, FALSE)
!passed # FALSE TRUE FALSE TRUEتتحول كل قيمة TRUE إلى FALSE، وكل قيمة FALSE إلى TRUE. يكون هذا مفيدًا بشكل خاص عندما تريد العثور على العناصر التي لا تستوفي شرطًا معينًا:
temperatures <- c(18, 25, 30, 15, 22)
# ابحث عن درجات الحرارة التي ليست أعلى من 20
!(temperatures > 20) # TRUE FALSE FALSE TRUE FALSEيمكنك دمج NOT المتجهة مع & و| لإنشاء عوامل تصفية معقدة:
ages <- c(16, 25, 18, 30, 14)
has_permission <- c(TRUE, TRUE, FALSE, TRUE, TRUE)
# يمكن المشاركة إذا: age >= 18 OR (under 18 AND has permission)
can_participate <- ages >= 18 | (ages < 18 & has_permission)
# TRUE TRUE FALSE TRUE TRUEتذكّر: استخدم & و| و! المفردة عند العمل مع المتجهات، واستخدم && و|| المزدوجة عند مقارنة القيم المفردة.
التحدي
سهلاستخدم عامل NOT المتجه (!) مع & و| لإنشاء شروط منطقية معقدة تُطبَّق على مستوى العناصر.
توفّرت لك المتجهات التالية:
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)استخدم العوامل المنطقية المتجهة، بما في ذلك عامل NOT، لإنشاء المتجهات المنطقية التالية:
- أنشئ متجهًا يُسمّى
failedيخزّنTRUEلكل درجة ليست أكبر من أو تساوي 60 - أنشئ متجهًا يُسمّى
absentيخزّن عكسattended(اقلب كل قيمة) - أنشئ متجهًا يُسمّى
at_riskيخزّنTRUEلكل طالب لم يحضر NOT أو لم يسلّم الواجب - أنشئ متجهًا يُسمّى
passing_but_absentيخزّنTRUEلكل طالب لديه درجة أكبر من أو تساوي 60 وNOT لم يحضر - أنشئ متجهًا يُسمّى
needs_supportيخزّنTRUEلكل طالب حيث: (الدرجة أقل من 50) أو (NOT حضر وNOT سلّم الواجب)
استخدم الدالة print() لعرض failed وabsent وat_risk وpassing_but_absent وneeds_support بهذا الترتيب الدقيق.
جرّب بنفسك
# المتجهات المعطاة
scores <- c(45, 72, 88, 55, 91, 38, 67)
attended <- c(TRUE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
submitted_homework <- c(TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE)
# TODO: اكتب الكود الخاص بك أدناه
# 1. أنشئ 'failed' - TRUE لـ scores NOT >= 60
# 2. أنشئ 'absent' - عكس attended
# 3. أنشئ 'at_risk' - NOT attended OR NOT submitted homework
# 4. أنشئ 'passing_but_absent' - score >= 60 AND NOT attended
# 5. أنشئ 'needs_support' - (score < 50) OR (NOT attended AND NOT submitted homework)
# اطبع النتائج
print(failed)
print(absent)
print(at_risk)
print(passing_but_absent)
print(needs_support)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأتدرّب بنفسك: مترجم R عبر الإنترنت