Mengiterasi Elemen Vektor
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 63 dari 78.
Meskipun operasi vektorisasi R sangat andal, terkadang kamu perlu memproses setiap elemen satu per satu dengan logika khusus. for loop memungkinkan kamu mengiterasi elemen vector satu per satu.
Cara paling sederhana untuk melakukan perulangan pada vector adalah dengan langsung mengiterasi elemennya:
fruits <- c("apple", "banana", "cherry")
for (fruit in fruits) {
print(fruit)
}Output:
[1] "apple"
[1] "banana"
[1] "cherry"Dalam setiap iterasi, variabel loop fruit mengambil nilai elemen berikutnya dalam vector. Pendekatan ini bersih dan mudah dibaca saat kamu hanya membutuhkan nilainya saja.
Kamu bisa menggabungkan perulangan dengan logika percabangan untuk memproses elemen secara selektif:
numbers <- c(3, 8, 2, 10, 5)
for (num in numbers) {
if (num > 5) {
print(num)
}
}Output:
[1] 8
[1] 10Pola ini berguna saat kamu perlu menerapkan operasi yang berbeda berdasarkan nilai setiap elemen, sesuatu yang tidak selalu dapat ditangani oleh operasi vektorisasi saja.
Tantangan
MudahKamu akan menerima dua baris input:
- Sebuah list angka yang dipisahkan koma (misalnya,
12,5,18,3,25,8,14) - Nilai ambang batas (misalnya,
10)
Gunakan for loop untuk mengiterasi elemen vector:
- Buat vector dari angka-angka yang dipisahkan koma
- Telusuri setiap elemen dalam vector
- Untuk setiap elemen yang lebih besar dari atau sama dengan nilai ambang batas, cetak elemen tersebut menggunakan
print()
Contohnya, jika inputnya adalah:
4,15,8,22,6,19,11
10Outputnya harus seperti ini:
[1] 15
[1] 22
[1] 19
[1] 11Penjelasan: Perulangan memeriksa setiap elemen terhadap nilai ambang batas (10). Elemen 15, 22, 19, dan 11 semuanya lebih besar dari atau sama dengan 10, jadi elemen-elemen tersebut dicetak. Elemen 4, 8, dan 6 dilewati.
Coba sendiri
# Baca input
con <- file("stdin", "r")
numbers_input <- suppressWarnings(readLines(con, n = 1))
threshold <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# Ubah string yang dipisahkan koma menjadi vektor numerik
numbers <- as.numeric(unlist(strsplit(numbers_input, ",")))
# TODO: Tulis kodemu di bawah ini
# Gunakan for loop untuk menelusuri vektor numbers
# Untuk setiap elemen >= threshold, cetak elemen tersebut menggunakan print()Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 2
Operator Logika (AND, OR)Operator Logika Bagian 2 (NOT)Rangkuman: Logika SederhanaLogika Tervektorisasi Bagian 1Logika Tervektorisasi Bagian 27Kalkulator Pembagi Tagihan
Pesan Selamat DatangMenerima Input Pengguna10FizzBuzz dengan Sentuhan Unik
Ikhtisar PermainanFungsi FizzBuzz2Variabel dan Tipe Data
Tipe Data NumerikTipe Data IntegerTipe Data KarakterTipe Data LogikaMemeriksa Tipe DataKonvensi PenamaanNilai yang Hilang: NARingkasan: Membuat Variabel8Perulangan
For LoopWhile LoopBreakBerikutnya (Continue)Ringkasan: FaktorialPembuatan Urutan (seq, :)Loop BersarangRingkasan: Input Dinamis3Operator Bagian 1
Operator AritmetikaPembagian Bilangan Bulat dan ModuloOperator PenugasanRangkuman: Matematika SederhanaOperator Perbandingan6Dasar input/output
Cetak outputcat untuk outputOutput dengan variabelMembaca input dengan readline()Dasar konversi tipe dataRingkasan: Kalkulator usiaRingkasan: Benar atau salah9Fungsi
Mendeklarasikan FungsiArgumen FungsiNilai KembalianUlasan: Fungsi SigmaUlasan: Fungsi ValidasiNilai Parameter Default12Melakukan Iterasi pada Urutan
Mengiterasi Elemen VektorMenggunakan seq_along()Mengiterasi Karakter (strsplitFungsi Manipulasi stringLatihan sendiri: Compiler R online