Lewati ke konten utama

For Loop di R

Saat Anda mengetahui berapa kali ingin mengulang sebuah aksi, for loop adalah pilihan yang tepat. Kuasai for loop dengan tutorial ini.
· 5 mnt Baca

Jelajahi bersama AI


Kuasai for loop dan fungsi-fungsi R penting lainnya dengan kursus pengantar R kami.

Loop pada Vector

Saat Anda mengetahui berapa kali ingin mengulang sebuah aksi, for loop adalah pilihan yang tepat. Gagasan for loop adalah Anda melangkah melalui sebuah urutan, satu per satu, dan melakukan sebuah aksi di setiap langkah. Urutan tersebut umumnya berupa vector angka (seperti urutan dari 1:10), tetapi bisa juga angka yang tidak berurutan seperti c(2, 5, 4, 6), atau bahkan urutan karakter!

for (value in sequence) {
    code
}

Dengan kata lain, ini mengatakan, "untuk setiap nilai dalam urutanku, jalankan kode ini." Contohnya bisa berupa, "untuk setiap baris data frame-ku, cetak kolom 1", atau "untuk setiap kata dalam kalimatku, periksa apakah kata itu adalah DataCamp."

Mari coba contoh! Pertama, Anda akan membuat loop yang mencetak nilai-nilai dalam urutan dari 1 hingga 10. Lalu, Anda akan memodifikasi loop tersebut untuk juga menjumlahkan nilai dari 1 hingga 10, di mana pada setiap iterasi nilai berikutnya dalam urutan ditambahkan ke jumlah berjalan.

Instruksi

Sebuah vector seq telah dibuat untuk Anda. Lengkapi for loop, gunakan seq sebagai urutan Anda. Cetak value pada setiap iterasi. Sebuah variabel sum telah dibuat untuk Anda. Gunakan loop untuk menjumlahkan angka dalam seq. Setiap iterasi, value harus ditambahkan ke sum, lalu sum dicetak.


# Sequence
         seq <- c(1:10)

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

          # A sum variable
          sum <- 0

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

Jika itu sudah masuk akal, lanjutkan ke latihan berikutnya! Jika belum, berikut video ikhtisarnya.

Video Ikhtisar tentang For Loop di R

Loop pada Baris Data Frame

Bayangkan Anda tertarik pada hari-hari ketika harga saham Apple naik di atas 117. Jika melewati nilai ini, Anda ingin mencetak tanggal dan harga saham saat itu. Jika Anda memiliki data frame stock dengan kolom harga apple dan date, dapatkah Anda melakukan loop pada baris data frame untuk mencapai ini? Tentu bisa!

Sebelum melakukannya, perlu dicatat bahwa Anda dapat memperoleh jumlah baris dalam data frame menggunakan nrow(stock). Lalu, Anda dapat membuat urutan untuk dilalui dari 1:nrow(stock).

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"

Ini menggabungkan sejumlah hal yang telah kita pelajari sejauh ini. If statement, subsetting vector, conditional, dan loop! Selamat telah mempelajari begitu banyak!

Instruksi

stock ada di workspace Anda.

Isi bagian yang kosong dalam for loop agar hal berikut terpenuhi:

  • price harus menyimpan harga pada iterasi tersebut
  • date harus menyimpan tanggal pada iterasi tersebut
  • Kali ini, Anda ingin mengetahui apakah apple melewati 116.
  • Jika ya, cetak date dan price.
  • Jika berada di bawah 116, cetak date dan cetak bahwa itu bukan hari yang penting!

# 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!"))
              }
            }

Loop pada Elemen Matriks

Sejauh ini, Anda melakukan loop pada tipe data berdimensi 1. Jika Anda ingin melakukan loop pada elemen dalam matriks (kolom dan baris), maka Anda harus menggunakan loop bersarang. Anda akan menggunakan gagasan ini untuk mencetak korelasi antara tiga saham.

Cara termudah memikirkannya adalah Anda akan mulai pada baris1, lalu bergerak ke kanan, melewati kol1, kol2, ..., hingga kolom terakhir di baris1. Kemudian, Anda turun ke baris2 dan mengulangi prosesnya.

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"

Instruksi

Matriks korelasi, corr, ada di workspace Anda.

  • Cetak corr untuk mengintip datanya.
  • Lengkapi for loop bersarang! Ini harus memenuhi hal berikut:
    • Loop luar harus melintasi row dari corr.
    • Loop dalam harus melintasi col dari corr.
    • Pernyataan print harus mencetak nama kolom dan baris saat ini, dan juga mencetak korelasinya.

  # 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]))
            }
        }

Lihat juga Tutorial Loop di R kami.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026