A untuk gelung sangat berharga apabila kita perlu membuat senarai elemen atau rangkaian nombor. Gelung dapat digunakan untuk mengulangi senarai, bingkai data, vektor, matriks atau objek lain. Pendakap dan pendakap persegi adalah wajib.
Dalam tutorial ini, kita akan belajar,
- Untuk Sintaks dan Contoh Gelung
- Untuk Loop senarai
- Untuk Gelung di atas matriks
Untuk Sintaks dan Contoh Gelung
For (i in vector) {Exp}
Di sini,
R akan melingkari semua pemboleh ubah dalam vektor dan melakukan pengiraan yang ditulis di dalam exp.
Mari lihat beberapa contoh.
Contoh 1 : Kami mengulangi semua elemen vektor dan mencetak nilai semasa.
# Create fruit vectorfruit <- c('Apple', 'Orange', 'Passion fruit', 'Banana')# Create the for statementfor ( i in fruit){print(i)}
Pengeluaran:
## [1] "Apple"## [1] "Orange"## [1] "Passion fruit"## [1] "Banana"
Contoh 2 : mencipta fungsi tidak linear dengan menggunakan polinomial x antara 1 dan 4 dan kami menyimpannya dalam senarai
# 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)
Pengeluaran:
## [1] 1 4 9 16
Gelung untuk sangat berguna untuk tugas pembelajaran mesin. Setelah kita melatih model, kita perlu mengatur modelnya agar tidak terlalu pas. Regularisasi adalah tugas yang sangat membosankan kerana kita perlu mencari nilai yang meminimumkan fungsi kerugian. Untuk membantu kami mengesan nilai-nilai tersebut, kami dapat menggunakan loop for untuk melakukan lelaran pada pelbagai nilai dan menentukan calon terbaik.
Untuk Loop senarai
Melengkapkan senarai sama mudah dan senangnya dengan mengulangi vektor. Mari lihat contoh
# 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)}
Pengeluaran:
## [1] "Apple" "Orange" "Passion fruit" "Banana"## [1] 10 12 15## [1] FALSE
Untuk Gelung di atas matriks
Matriks mempunyai 2 dimensi, baris dan lajur. Untuk mengulangi matriks, kita harus menentukan dua untuk gelung, iaitu satu untuk baris dan satu lagi untuk lajur.
# 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]))
Pengeluaran:
## [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"