For döngüsü, bir öğe listesi veya bir sayı aralığı üzerinde yineleme yapmamız gerektiğinde çok değerlidir. Döngü, bir liste, veri çerçevesi, vektör, matris veya başka herhangi bir nesne üzerinde yineleme yapmak için kullanılabilir. Parantez ve köşeli parantez zorunludur.
Bu eğitimde öğreneceğiz,
- Döngü Sözdizimi ve Örnekler İçin
- Liste üzerinden döngü için
- Matris üzerinden Döngü için
Döngü Sözdizimi ve Örnekler İçin
For (i in vector) {Exp}
Buraya,
R, vektördeki tüm değişkenler üzerinde döngü oluşturacak ve exp içinde yazılan hesaplamayı yapacaktır.
Birkaç örnek görelim.
Örnek 1 : Bir vektörün tüm öğeleri üzerinde yineleme yapıyoruz ve mevcut değeri yazdırıyoruz.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Çıktı:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Örnek 2 : 1 ile 4 arasındaki x polinomunu kullanarak doğrusal olmayan bir fonksiyon oluşturur ve bunu bir listede saklarız
# Create an empty listlist <- c()# Create a for statement to populate the listfor (i in seq(1, 4, by=1)) {list[[i]] <- i*i}print(list)
Çıktı:
## [1] 1 4 9 16
For döngüsü, makine öğrenimi görevleri için çok değerlidir. Bir modeli eğittikten sonra, fazla uydurmaktan kaçınmak için modeli düzenli hale getirmemiz gerekir. Düzenlilik çok sıkıcı bir iştir çünkü kayıp fonksiyonunu en aza indiren değeri bulmamız gerekir. Bu değerleri tespit etmemize yardımcı olmak için, bir dizi değeri yinelemek ve en iyi adayı tanımlamak için bir for döngüsü kullanabiliriz.
Liste üzerinden döngü için
Bir liste üzerinde döngü yapmak, bir vektör üzerinden döngü yapmak kadar kolay ve kullanışlıdır. Bir örnek görelim
# Create a list with three vectorsfruit <- list(Basket = c('Apple', 'Orange', 'Passion fruit', 'Banana'),Money = c(10, 12, 15), purchase = FALSE)for (p in fruit){print(p)}
Çıktı:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
Matris üzerinden Döngü için
Bir matrisin 2 boyutu, satırları ve sütunları vardır. Bir matris üzerinde yineleme yapmak için, biri satırlar ve diğeri sütun için olmak üzere iki for döngüsü tanımlamamız gerekir.
# Create a matrixmat <- matrix(data = seq(10, 20, by=1), nrow = 6, ncol =2)# Create the loop with r and c to iterate over the matrixfor (r in 1:nrow(mat))for (c in 1:ncol(mat))print(paste("Row", r, "and column",c, "have values of", mat[r,c]))
Çıktı:
## [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"