Ana içeriğe geç

R'de For Döngüleri

Bir işlemi kaç kez tekrarlamak istediğinizi bildiğinizde, for döngüsü iyi bir seçenektir. Bu eğitimle for döngülerinde ustalaşın.
· 5 dk. oku

Yapay Zeka ile Keşfedin


For döngülerinde ve diğer temel R fonksiyonlarında ustalaşmak için R'ye giriş kursumuzu inceleyin.

Bir Vektör Üzerinde Döngü Kurun

Bir işlemi kaç kez tekrarlamak istediğinizi bildiğinizde, for döngüsü iyi bir seçenektir. For döngüsünün fikri, bir diziden adım adım ilerlemeniz ve yol boyunca her adımda bir işlem gerçekleştirmenizdir. Bu dizi genellikle bir sayı vektörüdür (örneğin 1:10 dizisi), ancak c(2, 5, 4, 6) gibi sıralı olmayan sayılar ya da hatta bir karakter dizisi de olabilir!

for (value in sequence) {
    code
}

Sözle ifade edersek, "dizimdeki her değer için, bu kodu çalıştır" demektir. Örneğin, "veri çerçevemin her satırı için, 1. sütunu yazdır" ya da "cümlemdeki her kelime için, o kelime DataCamp mi kontrol et" gibi.

Bir örnek deneyelim! Önce, 1'den 10'a kadar bir dizideki değerleri yazdıran bir döngü oluşturacaksınız. Ardından, bu döngüyü 1'den 10'a kadar olan değerleri toplamaya da uyarlayacaksınız; burada her yinelemede dizideki bir sonraki değer, artan toplama eklenir.

Talimatlar

Sizin için bir seq vektörü oluşturuldu. For döngüsünü, diziniz olarak seq'i kullanarak doldurun. Her yinelemede value'yu yazdırın. Sizin için bir sum değişkeni de oluşturuldu. seq içindeki sayıları toplamak için döngüyü kullanın. Her yinelemede value sum'a eklenmeli, ardından sum yazdırılmalıdır.


# Sequence
         seq <- c(1:10)

         # Print loop
         for (value in ___) {
           print(___)
         }

          # A sum variable
          sum <- 0

          # Sum loop
          for (value in seq) {
          sum <- ___ + ___
          print(___)
          }

Burası mantıklıysa bir sonraki alıştırmaya geçin! Değilse, burada bir genel bakış videosu var.

R'de For Döngülerine Genel Bakış Videosu

Veri Çerçevesi Satırlarında Döngü Kurun

Apple'ın hisse fiyatının 117'nin üzerine çıktığı günlerle ilgilendiğinizi hayal edin. Bu değerin üzerine çıkarsa, o günün tarihini ve hisse fiyatını yazdırmak istiyorsunuz. date ve apple fiyat sütunlarına sahip bir stock veri çerçeveniz varsa, bunu gerçekleştirmek için veri çerçevesinin satırlarında döngü kurabilir misiniz? Elbette kurabilirsiniz!

Bunu yapmadan önce, veri çerçevenizdeki satır sayısını nrow(stock) ile alabileceğinizi unutmayın. Sonra, 1:nrow(stock) şeklinde üzerinden döngü kuracağınız bir dizi oluşturabilirsiniz.

for (row in 1:nrow(stock)) {
    price <- stock[row, "apple"]
    date  <- stock[row, "date"]

    if(price > 117) {
        print(paste("On", date,
                    "the stock price was", price))
    }
}
[1] "On 2016-12-21 the stock price was 117.06"
[1] "On 2016-12-27 the stock price was 117.26"

Bu, şimdiye kadar öğrendiklerimizden birçoğunu kapsar. If ifadeleri, vektör alt kümeleri, koşullar ve döngüler! Bu kadar çok şey öğrendiğiniz için tebrikler!

Talimatlar

stock çalışma alanınızda.

For döngüsündeki boşlukları aşağıdakiler doğru olacak şekilde doldurun:

  • price o yinelemenin fiyatını tutmalı
  • date o yinelemenin tarihini tutmalı
  • Bu kez, apple'ın 116'nın üzerine çıkıp çıkmadığını bilmek istiyorsunuz.
  • Eğer çıkarsa, date ve price'ı yazdırın.
  • 116'nın altındaysa, date'i yazdırın ve bunun önemli bir gün olmadığını yazdırın!

# Loop over stock rows
         for (row in 1:___) {
              price <- stock[___, "___"]
              date  <- stock[___, "___"]

              if(___ > ___) {
                  print(paste("On", ___,
                              "the stock price was", ___))
              } else {
                  print(paste("The date:, ___,
                              "is not an important day!"))
              }
            }

Matris Öğeleri Üzerinde Döngü Kurun

Şimdiye kadar, tek boyutlu veri türleri üzerinde döngü kurdunuz. Bir matristeki (sütunlar ve satırlar) öğeler üzerinde döngü kurmak istiyorsanız, iç içe döngüler kullanmanız gerekir. Üç hisse arasındaki korelasyonları yazdırmak için bu fikri kullanacaksınız.

Bunu düşünmenin en kolay yolu, 1. satırdan başlayıp sağa doğru ilerlemeniz; 1. sütun, 2. sütun, ... 1. satırdaki son sütuna kadar gitmenizdir. Sonra 2. satıra inip işlemi tekrarlarsınız.

my_matrix
     [,1]   [,2]  
[1,] "r1c1" "r1c2"
[2,] "r2c1" "r2c2"

# Loop over my_matrix
for(row in 1:nrow(my_matrix)) {
    for(col in 1:ncol(my_matrix)) {
        print(my_matrix[row, col])
    }
}
[1] "r1c1"
[1] "r1c2"
[1] "r2c1"
[1] "r2c2"

Talimatlar

Korelasyon matrisi corr çalışma alanınızda.

  • Veriye göz atmak için corr'u yazdırın.
  • İç içe for döngüsünü doldurun! Şunları sağlamalıdır:
    • Dış döngü corr'un rowlarında olmalı.
    • İç döngü corr'un collarında olmalı.
    • Yazdırma ifadesi, geçerli sütunun ve satırın adlarını ve ayrıca aralarındaki korelasyonu yazdırmalı.

  # Print out corr


        # Create a nested loop
        for(row in 1:nrow(___)) {
            for(col in 1:___(corr)) {
                print(paste(colnames(corr)[___], "and", rownames(corr)[___],
                            "have a correlation of", corr[row,col]))
            }
        }

Ayrıca R'de Döngüler üzerine bir Eğitim yazımıza da göz atın.

Konular

İlgili