Menggunakan seq_along()
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 64 dari 78.
Terkadang kamu membutuhkan nilai elemen dan posisinya di dalam vector. Meskipun melakukan iterasi langsung pada elemen terlihat rapi, cara ini tidak memberimu akses ke indeks. Fungsi seq_along() mengatasi hal ini dengan menghasilkan urutan indeks untuk vector apa pun.
Fungsi seq_along() mengembalikan urutan dari 1 hingga panjang vektor:
fruits <- c("apple", "banana", "cherry")
print(seq_along(fruits))Keluaran:
[1] 1 2 3Dengan melakukan perulangan pada indeks-indeks ini, kamu dapat mengakses posisi dan nilainya:
fruits <- c("apple", "banana", "cherry")
for (i in seq_along(fruits)) {
cat(i, ":", fruits[i], "\n")
}Output:
1 : apple
2 : banana
3 : cherryPendekatan ini sangat berguna saat kamu perlu mengubah elemen pada posisi tertentu atau membandingkan elemen dengan tetangganya. Menggunakan seq_along() lebih aman daripada 1:length(vec) karena menangani vektor kosong dengan benar, menghasilkan urutan kosong alih-alih 1:0.
Tantangan
MudahKamu akan menerima satu baris input yang berisi angka-angka dipisahkan koma (misalnya, 10,20,30,40,50).
Gunakan seq_along() untuk melakukan iterasi pada vektor dengan indeks:
- Buat vektor dari input yang dipisahkan koma
- Lakukan perulangan pada vektor menggunakan
seq_along()untuk mendapatkan indeks dan nilai - Untuk setiap elemen, cetak indeks, nilai, dan jumlah kumulatif hingga posisi tersebut (jumlah semua elemen dari posisi 1 hingga posisi saat ini)
Gunakan cat() dengan format: Position X: VALUE (Running total: TOTAL) diikuti baris baru.
Misalnya, jika inputnya adalah:
5,10,15,20Outputnya seharusnya:
Position 1: 5 (Running total: 5)
Position 2: 10 (Running total: 15)
Position 3: 15 (Running total: 30)
Position 4: 20 (Running total: 50)Penjelasan: Pada posisi 1, nilainya adalah 5 dan jumlah berjalannya adalah 5. Pada posisi 2, nilainya adalah 10 dan jumlah berjalannya adalah 5+10=15. Pada posisi 3, nilainya adalah 15 dan jumlah berjalannya adalah 5+10+15=30, dan seterusnya.
Petunjuk: Gunakan sum(vector[1:i]) untuk menghitung jumlah kumulatif hingga posisi i.
Coba sendiri
# Baca input
con <- file("stdin", "r")
input_line <- suppressWarnings(readLines(con, n = 1))
close(con)
# Ubah string yang dipisahkan koma menjadi vektor numerik
numbers <- as.numeric(strsplit(input_line, ",")[[1]])
# TODO: Tulis kodemu di bawah ini
# Gunakan seq_along() untuk melakukan perulangan pada vektor
# Untuk setiap posisi, tampilkan indeks, nilai, dan total sementara
# Gunakan cat() dengan format: Position X: VALUE (Running total: TOTAL)\nPelajaran 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