للحلقة في R DataFrame

Llhlqt Fy R Dataframe



حلقة for-loop هي بنية تحكم تمكننا من تكرار مجموعة من التعليمات في عدد محدد من المرات. إنها طريقة شائعة الاستخدام للتكرار في R ، خاصة عندما نحتاج إلى إجراء نفس العملية على بعض العناصر أو التكرار عبر بنية بيانات مثل تلك الموجودة في DataFrame. تشكل الصفوف والأعمدة إطارات البيانات في R حيث يمثل كل صف ملاحظة واحدة ويشير كل عمود إلى متغير أو جانب من تلك الملاحظة.

باستخدام هذه المقالة بالذات ، نستخدم حلقة for-loop للتكرار عبر DataFrame بطرق مختلفة. اعلم أن التكرار للحلقة عبر الصفوف والأعمدة يمكن أن يكون حسابيًا للغاية بالنسبة لأطر DataFrames الكبيرة.







مثال 1: استخدام صفوف For-Loop Over DataFrame في R.

يمكن استخدام for-loop في R للتكرار عبر صفوف DataFrame. داخل حلقة for-loop ، يمكننا استخدام فهرس الصف للوصول إلى كل صف من صف DataFrame. دعنا نفكر في رمز R التالي وهو عرض توضيحي لـ for-loop للتكرار على صفوف DataFrame المحدد.



data = data.frame (c1 = c (1: 5) ،

ج 2 = ج (6:10) ،

c3 = ج (11:15))

لـ (i in 1: nrow (data)) {

صف <- البيانات [i،]

طباعة (صف)

}

هنا ، نحدد أولاً دالة data.frame () داخل 'البيانات'. تحتوي الدالة data.frame () هنا على ثلاثة أعمدة. يتم تعيين كل عمود بتسلسل من الأرقام من 1 إلى 5 ، ومن 6 إلى 10 ، ومن 11 إلى 15 على التوالي. بعد ذلك ، يتم نشر وظيفة الحلقة التي تتكرر عبر صفوف 'بيانات' DataFrame باستخدام الدالة nrow () للحصول على العدد الإجمالي للصفوف. يأخذ متغير الحلقة 'i' القيم إلى العدد الكامل للصفوف في 'البيانات'.



بعد ذلك ، نستخرج الصف الأول من 'بيانات' DataFrame باستخدام علامة الأقواس المربعة '[]'. يتم تخزين الصف المستخرج في متغير 'صف' والذي ستتم طباعته بواسطة وظيفة الطباعة ().





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



مثال 2: استخدام For-Loop Over DataFrame Columns

وبالمثل ، يمكننا استخدام حلقة for-loop في R للتكرار فوق أعمدة إطار البيانات المحدد. يمكننا استخدام الكود السابق للتكرار فوق الأعمدة ولكن يجب علينا استخدام الدالة ncol () في الحلقة for-loop. على العكس من ذلك ، لدينا أبسط طريقة للتكرار الحلقي فوق أعمدة DataFrame باستخدام for-loop. ضع في اعتبارك رمز R التالي لهذا:

df = data.frame (col1 = c (10، 20، 30، 40، 50) ،

col2 = ج (11 ، 21 ، 31 ، 41 ، 51) ،

          col3 = c(12, 22, 32, 42, 52))

لـ (العمود في أسماء الأعمدة (df)) {

العمود <- df [[col]]

طباعة (عمود)

}

هنا ، نقوم أولاً بإنشاء المتغير df حيث يتم استخدام data.frame () مع إدراج الأعمدة. يحتوي 'df' DataFrame على ثلاثة أعمدة تحتوي على قيم رقمية. بعد ذلك ، نستخدم حلقة for-loop للتكرار فوق أسماء أعمدة 'data' DataFrame باستخدام الدالة colnames (). في كل تكرار ، يأخذ متغير الحلقة 'col' اسم العمود الحالي. ثم يتم تخزين العمود المستخرج في متغير جديد وهو 'العمود'.

وبالتالي ، فإن بيانات متغير 'العمود' تطبع الإخراج على وحدة التحكم التالية:

مثال 3: استخدام For-Loop فوق DataFrame بالكامل

في الأمثلة السابقة ، قمنا بعمل حلقات فوق الأعمدة والصفوف باستخدام حلقة for-loop ، على التوالي. الآن ، نستخدم حلقات for المتداخلة للتكرار على كل من صفوف وأعمدة DataFrame ، في وقت واحد. يتم توفير رمز R في ما يلي حيث يتم استخدام حلقة for-loop المتداخلة فوق الأعمدة والصفوف:

الموظفين <- data.frame (id = 1: 4 ،

الأسماء = c ('kim'، 'John'، 'Ian'، 'Mark')،

location = c ('أستراليا' ، 'أمريكا' ، 'كندا' ، 'الأردن') ،

الراتب = ج (2000 ، 1800 ، 1500 ، 1000))

لـ (الصف 1: nrow (الموظفون)) {

لـ (العمود 1: ncol (الموظفون)) {

طباعة (لصق ('فهرس الصف' ، الصف ، 'اسم العمود' ، العمود ، 'قيمة الخلية' ، الموظفون [الصف ، العمود]))

}

}

هنا ، نعلن عن متغير 'الموظفون' حيث يتم استدعاء data.frame () لتعيين الأعمدة. يتم تحديد القيم في كل عمود باستخدام المتجهات. بعد ذلك ، بالنسبة للصف والعمود في DataFrame 'الموظفون' ، نستخدم حلقتين متداخلتين من أجل تكرار البيانات. تتكرر الحلقة الخارجية عبر صفوف DataFrame المحدد باستخدام '1: nrow (الموظفون)'. لكل صف ، يتم استخدام '1: ncol (الموظفون)' في الحلقة الداخلية للتكرار بشكل متكرر عبر أعمدة DataFrame.

بعد ذلك ، لدينا وظيفة print () داخل الحلقات المتداخلة التي تنشر وظيفة لصق () لربط فهرس الصف وفهرس العمود وقيمة الخلية في سلسلة واحدة. يحصل تعبير الموظف [row، Col] هنا على القيمة الموجودة في الخلية الحالية حيث يكون الصف والعمود عبارة عن فهارس الصف والعمود الموجودة ، على التوالي.

وبالتالي ، يتم استرداد الإخراج على وحدة التحكم باستخدام فهرس الصف المتسلسل وفهرس العمود وقيمة الخلية في سلسلة واحدة.

مثال 4: طريقة بديلة للحلقة في R

أصبحت حلقة for قديمة الآن في لغة R. ومع ذلك ، فإنه يوفر بعض الطرق البديلة التي تعمل مثل حلقة for-loop وأسرع من for-loop. هذه الطريقة من وظائف 'عائلة التطبيق' التي تعمل من أجل حلقة في الخلفية للتكرار عبر DataFrames. دعنا نفكر في رمز R التالي حيث يتم استخدام وظيفة sapply () للتكرار عبر DataFrame.

dfX <- data.frame (var1 = c (1: 5) ،

var2 = c (6:10) ،

var3 = c (11:15) ،

var4 = c (16:20))

dfX

sapply (dfX، sum)

هنا ، نقوم أولاً بإنشاء 'dfX' DataFrame عن طريق استدعاء وظيفة data.frame () بعمودين ، يحتوي كل منهما على قيم رقمية. ثم نطبع dfX الأصلي DataFrame إلى وحدة التحكم. في الخطوة التالية ، نستخدم وظيفة sapply () للتكرار عبر DataFrame المقدم والحصول على مجموع كل عمود. تأخذ الدالة sapply () الوسيطتين 'x' و 'FUN' بشكل عام. في هذه الحالة ، X هي 'dfX' DataFrame ، و 'FUN' هي دالة sum () التي يتم تطبيقها على كل عمود من أعمدة DataFrame.

يتم تحقيق نتيجة التكرار الذي تم تحقيقه من خلال وظيفة sapply () في الشاشة التالية. يتم عرض نتائج عملية مجموع DataFrame لكل عمود. علاوة على ذلك ، يمكننا أيضًا استخدام بعض الوظائف الأخرى لـ 'عائلة التطبيقات' للعملية for-loop في R:

خاتمة

نحن نعمل مع حلقات for للتكرار على صفوف أو أعمدة DataFrame لإجراء عملية محددة. يتم استخدام حلقة for-loop بشكل فردي للتكرار عبر الأعمدة والصفوف. علاوة على ذلك ، نستخدم هذا للتكرار على كل من أعمدة وصفوف إطار البيانات في نفس الوقت. في معظم الأحيان ، يكون تطبيق الوظائف للحصول على النتيجة المرجوة أكثر فعالية. يتم إعطاء مثال الوظيفة application في المثال الأخير عبر عملية الحلقة.