للحلقة في R مع أمثلة للقائمة والمصفوفة

تعتبر حلقة for مفيدة للغاية عندما نحتاج إلى تكرار قائمة من العناصر أو نطاق من الأرقام. يمكن استخدام الحلقة للتكرار على قائمة أو إطار بيانات أو متجه أو مصفوفة أو أي كائن آخر. الأقواس والأقواس المربعة إلزامية.

في هذا البرنامج التعليمي سوف نتعلم،

من أجل بناء جملة الحلقة والأمثلة

For (i in vector) {
    Exp	
}

هنا،

R سوف يتكرر فوق جميع المتغيرات في المتجه ويقوم بالحساب المكتوب داخل EXP.

للحلقة في R
للحلقة في R

دعونا نرى بعض الأمثلة.

للحلقة في R مثال 1: نكرر جميع عناصر المتجه ونطبع القيمة الحالية.

# Create fruit vector
fruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')
# Create the for statement
for ( i in fruit){ 
 print(i)
}

الإخراج:

## [1] "Apple"
## [1] "Orange"
## [1] "Passion fruit"
## [1] "Banana"

للحلقة في R مثال 2: إنشاء دالة غير خطية باستخدام متعدد الحدود x بين 1 و 4 ونقوم بتخزينها في القائمة

# Create an empty list
list <- c()
# Create a for statement to populate the list
for (i in seq(1, 4, by=1)) {
  list[[i]] <- i*i
}
print(list)

الإخراج:

## [1]   1  4 9 16

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

للحلقة فوق القائمة

يعد التكرار فوق القائمة أمرًا سهلاً ومريحًا تمامًا مثل التكرار فوق المتجه. دعونا نرى مثالا

# Create a list with three vectors
fruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'), 
Money = c(10, 12, 15), purchase = FALSE)
for (p  in fruit) 
{ 
	print(p)
}

الإخراج:

## [1] "Apple" "Orange" "Passion fruit" "Banana"       
## [1] 10 12 15
## [1] FALSE

لحلقة على مصفوفة

تحتوي المصفوفة على بعدين، صفوف وأعمدة. للتكرار على مصفوفة، علينا تحديد حلقتين للتكرار، واحدة للصفوف وأخرى للعمود.

# Create a matrix
mat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)
# Create the loop with r and c to iterate over the matrix
for (r in 1:nrow(mat))   
    for (c in 1:ncol(mat))  
         print(paste("Row", r, "and column",c, "have values of", mat[r,c]))  

الإخراج:

## [1] "Row 1 and column 1 have values of 10"
## [1] "Row 1 and column 2 have values of 16"
## [1] "Row 2 and column 1 have values of 11"
## [1] "Row 2 and column 2 have values of 17"
## [1] "Row 3 and column 1 have values of 12"
## [1] "Row 3 and column 2 have values of 18"
## [1] "Row 4 and column 1 have values of 13"
## [1] "Row 4 and column 2 have values of 19"
## [1] "Row 5 and column 1 have values of 14"
## [1] "Row 5 and column 2 have values of 20"
## [1] "Row 6 and column 1 have values of 15"
## [1] "Row 6 and column 2 have values of 10" 

تلخيص هذه التدوينة بـ: