العمليات على المتجهات
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 59 من 78.
واحدة من أقوى ميزات لغة R هي القدرة على إجراء العمليات على متجهات كاملة في وقت واحد، دون الحاجة إلى المرور عبر كل عنصر. وهذا يجعل الكود الخاص بك أكثر وضوحاً وكفاءة.
عندما تقوم بتطبيق عامل حسابي على متجه (vector)، تقوم لغة R بإجراء العملية على كل عنصر:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)المخرجات:
[1] 9.0 22.5 13.5 27.0يمكنك أيضاً إجراء عمليات بين متجهين لهما نفس الطول. يقوم R بمطابقة العناصر المتقابلة:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)المخرجات:
[1] 20 25 60 90توفر لغة R دوالاً مدمجة مفيدة لحسابات المتجهات الشائعة مثل sum()، و mean()، و min()، و max():
scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))المخرجات:
[1] 438
[1] 87.6
[1] 78
[1] 95التحدي
سهليتم تزويدك بالمتجهات التالية:
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)قم بإجراء العمليات التالية واطبع كل نتيجة:
- احسب الأرباح اليومية لكل يوم عن طريق ضرب
hours_workedفيhourly_rate(عنصر بعنصر). اطبع هذا المتجه. - قم بتطبيق مكافأة قدرها 10% على جميع الأرباح اليومية (اضرب في
1.1). اطبع متجه الأرباح المحدث. - اطبع إجمالي الأرباح للأسبوع باستخدام
sum() - اطبع متوسط الأرباح اليومية باستخدام
mean() - اطبع أعلى أرباح ليوم واحد باستخدام
max() - اطبع أقل أرباح ليوم واحد باستخدام
min()
يجب أن تكون مخرجاتك:
[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132ورقة مرجعية
تنفذ لغة R العمليات على المتجهات بالكامل دفعة واحدة دون الحاجة إلى حلقات تكرارية (loops).
يؤدي تطبيق عامل حسابي على متجه إلى تنفيذ العملية على كل عنصر فيه:
prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)
# [1] 9.0 22.5 13.5 27.0العمليات بين متجهين لهما نفس الطول تقوم بمزاوجة العناصر المتقابلة:
quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)
# [1] 20 25 60 90الدوال المدمجة الشائعة لحسابات المتجهات:
scores <- c(85, 92, 78, 95, 88)
sum(scores) # [1] 438
mean(scores) # [1] 87.6
min(scores) # [1] 78
max(scores) # [1] 95جرّب بنفسك
# المتجهات المعطاة
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)
# المهام المطلوبة: اكتب الكود الخاص بك أدناه
# 1. حساب الأرباح اليومية (الضرب لكل عنصر على حدة)
# 2. تطبيق مكافأة بنسبة 10% على الأرباح اليومية
# 3. طباعة إجمالي الأرباح للأسبوع باستخدام ()sum
# 4. طباعة متوسط الأرباح اليومية باستخدام ()mean
# 5. طباعة أعلى أرباح ليوم واحد باستخدام ()max
# 6. طباعة أقل أرباح ليوم واحد باستخدام ()minيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)11المتجهات
إنشاء المتجهات باستخدام c()الوصول إلى عناصر المتجهتعديل المتجهاتالعمليات على المتجهاتمراجعة - متجه الأسعارمراجعة - المتجه المعكوسالمتجهات المسماة3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ