Mengiterasi Karakter (strsplit
Termasuk bagian Dasar-Dasar dalam perjalanan R di Coddy. Pelajaran 65 dari 78.
Bagaimana jika kamu perlu memproses setiap karakter dalam string satu per satu? Tidak seperti vektor, kamu tidak bisa langsung melakukan perulangan pada karakter dalam string di R. Fungsi strsplit() mengatasi hal ini dengan memecah string menjadi vektor berisi karakter.
Fungsi strsplit() menerima dua argumen: string yang akan dipisah dan pemisahnya. Untuk memisahnya menjadi karakter-karakter tunggal, gunakan string kosong "" sebagai pemisah:
word <- "hello"
chars <- strsplit(word, "")[[1]]
print(chars)output:
[1] "h" "e" "l" "l" "o"Perhatikan [[1]] di bagian akhir. Ini karena strsplit() mengembalikan sebuah list, dan kita perlu mengambil elemen pertama untuk mendapatkan vektor karakter. Setelah kamu memiliki karakter dalam bentuk vektor, kamu bisa melakukan perulangan pada karakter tersebut menggunakan teknik yang sudah kamu pelajari:
word <- "R"
chars <- strsplit(word, "")[[1]]
for (char in chars) {
print(char)
}output:
[1] "R"Teknik ini penting untuk tugas seperti menghitung karakter tertentu, membalik string, atau memvalidasi input karakter demi karakter.
Tantangan
MudahKamu akan menerima satu baris input yang berisi sebuah kata (misalnya, programming).
Gunakan strsplit() untuk memisahkan string menjadi karakter-karakter:
- Pisahkan kata input menjadi sebuah vektor karakter
- Telusuri setiap karakter dalam vektor
- Hitung berapa kali huruf
"a"muncul dalam kata (peka huruf besar-kecil) - Cetak setiap karakter pada barisnya sendiri menggunakan
print() - Setelah perulangan, cetak jumlahnya menggunakan
cat()dengan format:Count of 'a': Xdiikuti baris baru
Misalnya, jika inputnya adalah:
bananaOutputnya seharusnya:
[1] "b"
[1] "a"
[1] "n"
[1] "a"
[1] "n"
[1] "a"
Count of 'a': 3Penjelasan: Kata "banana" dipisahkan menjadi karakter-karakter c("b", "a", "n", "a", "n", "a"). Setiap karakter dicetak, dan huruf "a" muncul 3 kali.
Coba sendiri
# Baca input
con <- file("stdin", "r")
word <- suppressWarnings(readLines(con, n = 1))
# Inisialisasi penghitung untuk huruf 'a'
count_a <- 0
# TODO: Tulis kodemu di bawah ini
# 1. Gunakan strsplit() untuk memisahkan kata menjadi karakter satu per satu
# 2. Ulangi untuk setiap karakter
# 3. Cetak setiap karakter menggunakan print()
# 4. Hitung berapa kali 'a' muncul
# Tampilkan jumlah 'a' sebagai output
cat("Count of 'a': ", count_a, "\n", sep = "")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