توليد المتتاليات (seq, :)
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 43 من 78.
لقد كنت تستخدم 1:5 لإنشاء تسلسلات في حلقاتك التكرارية. عامل النقطتين الرأسيتين هذا سريع وبسيط، ولكن توفر لغة R أيضاً الدالة seq() لمزيد من التحكم في تسلسلاتك.
يقوم عامل النقطتين الرأسيتين (colon operator) بإنشاء تسلسل من الأعداد الصحيحة المتتالية:
print(1:5)
print(10:6)المخرجات:
[1] 1 2 3 4 5
[1] 10 9 8 7 6لاحظ أن التسلسل يمكن أن يسير في أي من الاتجاهين. عندما يكون الرقم الأول أكبر، فإنه يقوم بالعد التنازلي.
توفر لك الدالة seq() مرونة أكبر. يمكنك تحديد حجم الخطوة باستخدام الوسيط by:
print(seq(2, 10, by = 2))المخرجات:
[1] 2 4 6 8 10هذا ينشئ أرقاماً زوجية من 2 إلى 10.
يمكنك أيضاً تحديد عدد الأرقام التي تريدها باستخدام length.out:
print(seq(1, 10, length.out = 4))المخرجات:
[1] 1 4 7 10يقوم R تلقائيًا بحساب التباعد ليعطيك بالضبط 4 أرقام متباعدة بالتساوي. يعمل كلا النهجين بسلاسة في الحلقات التكرارية (loops)، مما يتيح لك التكرار عبر تسلسلات مخصصة بسهولة.
التحدي
سهلاقرأ ثلاثة أرقام من المدخلات: start، و end، و step.
استخدم الدالة seq() لإنشاء تسلسل من start إلى end بحجم step المعطى. ثم استخدم حلقة for للتكرار عبر هذا التسلسل وطباعة مربع كل رقم.
يجب طباعة كل قيمة مربعة في سطر خاص بها باستخدام print().
على سبيل المثال، إذا كانت المدخلات هي 2، و 10، و 2، يجب أن تكون المخرجات:
[1] 4
[1] 16
[1] 36
[1] 64
[1] 100هذا لأن التسلسل 2، 4، 6، 8، 10 قد تم إنشاؤه، وتم تربيع كل رقم.
ورقة مرجعية
عامل النقطتين الرأسيتين : ينشئ تسلسلات من الأعداد الصحيحة المتتالية:
1:5 # ينشئ 1 2 3 4 5
10:6 # ينشئ 10 9 8 7 6 (عد تنازلي)توفر الدالة seq() تحكماً أكبر في التسلسلات:
# تحديد حجم الخطوة باستخدام 'by'
seq(2, 10, by = 2) # ينشئ 2 4 6 8 10
# تحديد عدد القيم باستخدام 'length.out'
seq(1, 10, length.out = 4) # ينشئ 1 4 7 10يعمل كل من عامل النقطتين الرأسيتين و seq() في حلقات for:
for (i in seq(2, 10, by = 2)) {
print(i)
}جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
start <- as.numeric(suppressWarnings(readLines(con, n = 1)))
end <- as.numeric(suppressWarnings(readLines(con, n = 1)))
step <- as.numeric(suppressWarnings(readLines(con, n = 1)))
# TODO: اكتب الكود الخاص بك أدناه
# 1. استخدم ()seq لتوليد تسلسل من start إلى end بالخطوة (step) المحددة
# 2. استخدم حلقة for للتكرار عبر التسلسل
# 3. اطبع مربع كل رقم باستخدام ()printيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ