Konversi Logical dan Character
Konversikan logical, character, dan numeric dengan as.logical() serta as.character().
Konversi Logical dan Character adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar R Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus R Academy mencakup 4 pelajaran total.
Mengonversi Antar-Tipe
R menyediakan fungsi as.*() untuk mengonversi semua tipe dasar. Pelajaran ini membahas konversi antara tipe logical, character, dan numeric—konversi bolak-balik yang paling umum Anda temui saat membersihkan data.
# Quick overview of as.*() functions
cat('as.logical(1): ', as.logical(1), '
') # TRUE
cat('as.numeric(TRUE): ', as.numeric(TRUE), '
') # 1
cat('as.character(3.14):', as.character(3.14), '
') # "3.14"
cat('as.logical("TRUE"):', as.logical('TRUE'), '
') # TRUENumeric ke Logical
Mengonversi angka menjadi logical: 0 menjadi FALSE, sedangkan angka bukan nol menjadi TRUE. Aturan ini berlaku untuk integer maupun double.
cat('as.logical(0): ', as.logical(0), '
') # FALSE
cat('as.logical(1): ', as.logical(1), '
') # TRUE
cat('as.logical(-5): ', as.logical(-5), '
') # TRUE (non-zero)
cat('as.logical(0.001):', as.logical(0.001), '
') # TRUE (non-zero)
cat('as.logical(0L): ', as.logical(0L), '
') # FALSE
cat('as.logical(3L): ', as.logical(3L), '
') # TRUELogical ke Numeric
TRUE dikonversi menjadi 1 dan FALSE menjadi 0. Konversi ini menjadi dasar banyak idiom R—seperti menggunakan sum() untuk menghitung nilai TRUE atau mean() untuk menghitung proporsi.
cat('as.numeric(TRUE): ', as.numeric(TRUE), '
') # 1
cat('as.numeric(FALSE): ', as.numeric(FALSE), '
') # 0
cat('as.integer(TRUE): ', as.integer(TRUE), '
') # 1L
# Practical use: count TRUEs by summing
passed <- c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE)
cat('Passed count:', sum(as.numeric(passed)), '
') # 4
cat('Pass rate: ', mean(passed) * 100, '%
') # 66.67%as.logical() dari String
as.logical('TRUE') dan as.logical('FALSE') mengonversi representasi string. R juga menerima 'T' dan 'F' sebagai singkatan. Selain itu (termasuk 'true' dalam huruf kecil), hasilnya adalah NA.
cat('as.logical("TRUE"): ', as.logical('TRUE'), '
') # TRUE
cat('as.logical("FALSE"): ', as.logical('FALSE'), '
') # FALSE
cat('as.logical("T"): ', as.logical('T'), '
') # TRUE
cat('as.logical("F"): ', as.logical('F'), '
') # FALSE
cat('as.logical("yes"): ', as.logical('yes'), '
') # NA (not recognised)
cat('as.logical("true"): ', as.logical('true'), '
') # NA (case-sensitive!)Numeric ke Character
as.character(x) mengonversi angka menjadi representasi stringnya. Ini berguna untuk membuat label dan ID, atau saat Anda perlu menempelkan angka ke dalam string.
num_val <- 3.14159
char_val <- as.character(num_val)
cat('as.character(3.14159):', char_val, '
') # '3.14159'
cat('class:', class(char_val), '
') # character
# Building labels
ids <- 1:5
labels <- paste0('Item_', as.character(ids))
cat('Labels:', labels, '
')Character ke Numeric
as.numeric('3.14') menguraikan string menjadi double. Jika string tidak dapat ditafsirkan sebagai angka, R mengembalikan NA disertai peringatan. Selalu validasi input sebelum melakukan konversi dalam kode produksi.
cat('as.numeric("3.14"): ', as.numeric('3.14'), '
') # 3.14
cat('as.numeric("100"): ', as.numeric('100'), '
') # 100
cat('as.numeric("-5.5"): ', as.numeric('-5.5'), '
') # -5.5
cat('as.numeric("abc"): ', as.numeric('abc'), '
') # NA with warning
cat('as.numeric("1e3"): ', as.numeric('1e3'), '
') # 1000 (sci notation OK)Logical ke Character
as.character(TRUE) menghasilkan string 'TRUE'. Ini berguna saat Anda perlu menyertakan nilai logical dalam output teks, ekspor file, atau penggabungan string.
flag_t <- TRUE
flag_f <- FALSE
cat('as.character(TRUE): ', as.character(flag_t), '
') # 'TRUE'
cat('as.character(FALSE):', as.character(flag_f), '
') # 'FALSE'
cat('class:', class(as.character(flag_t)), '
') # character
# In paste()
message <- paste('System status:', as.character(flag_t))
cat(message, '
')Konversi Bolak-Balik
Sebagian besar konversi dapat dibalik (bolak-balik), tetapi beberapa dapat menyebabkan kehilangan informasi: numeric -> character -> numeric dapat kehilangan presisi, bergantung pada cara angka diformat sebagai string.
original <- 3.141592653589793
char_version <- as.character(original)
back_to_num <- as.numeric(char_version)
cat('Original: ', original, '
')
cat('As string: ', char_version, '
')
cat('Back: ', back_to_num, '
')
cat('Identical?:', identical(original, back_to_num), '
')
cat('Equal?: ', original == back_to_num, '
')Mengonversi Vektor dari Asal yang Beragam
Saat Anda menerapkan as.numeric() ke vektor character, setiap elemen dikonversi secara terpisah. Elemen yang tidak dapat diuraikan menjadi NA. Ini adalah cara standar untuk membersihkan data yang tampak numeric dan dibaca dari file CSV.
# Simulated data from CSV (all read as character)
raw_data <- c('42', '37.5', 'N/A', '55', '', '28.0')
cat('Raw character data:', raw_data, '
')
numeric_data <- suppressWarnings(as.numeric(raw_data))
cat('Converted: ', numeric_data, '
') # 42 37.5 NA 55 NA 28
cat('NA count: ', sum(is.na(numeric_data)), '
')Konversi Logical dalam ifelse()
Menggabungkan as.numeric() dengan ifelse() atau mengalikan langsung dengan vektor logical merupakan idiom umum untuk penilaian bersyarat atau rekayasa fitur dalam analisis data.
# Score: 1 for correct, 0 for incorrect
quiz_answers <- c('A', 'C', 'B', 'D', 'B')
correct <- c('A', 'B', 'B', 'D', 'C')
is_correct <- quiz_answers == correct
cat('Correct: ', is_correct, '
')
cat('As 0/1: ', as.numeric(is_correct), '
')
cat('Score: ', sum(is_correct), '/', length(is_correct), '
')Ringkasan Konversi
Berikut ringkasan konversi logical dan character utama:
as.logical(0)→FALSE; nilai bukan nol apa pun →TRUEas.logical('TRUE'/'T')→TRUE; peka huruf besar-kecil; nilai lainnya →NAas.numeric(TRUE)→1;as.numeric(FALSE)→0as.character(x)→ representasi string dari xas.numeric('3.14')→ 3.14; string non-numeric →NAdisertai peringatan
# All conversions in one snippet
cat('logical->num: ', as.numeric(c(TRUE, FALSE)), '
')
cat('num->logical: ', as.logical(c(0, 1, -1, 0.5)), '
')
cat('char->num: ', suppressWarnings(as.numeric(c('5', 'abc', '3.1'))), '
')
cat('char->logical: ', as.logical(c('TRUE', 'FALSE', 'yes')), '
')
cat('logical->char: ', as.character(c(TRUE, FALSE)), '
')Pemeriksaan Singkat
Berapa hasil evaluasi as.numeric(TRUE) + as.numeric(FALSE) di R?
Ringkasan: Konversi Logical dan Character
Bagus sekali! Hal-hal penting dari pelajaran ini:
as.logical(0)→FALSE; nilai bukan nol →TRUE;'TRUE'/'T'→TRUEas.numeric(TRUE)→1;as.numeric(FALSE)→0as.character(x)mengonversi nilai apa pun menjadi bentuk stringnyaas.numeric('3.14')menguraikan string numeric; string tidak valid →NAas.logical('true')adalahNA—pencocokannya peka huruf besar-kecil ('TRUE'berhasil)- Konversi sebagian besar dapat dibalik; gunakan
suppressWarnings()saat mengonversi kolom yang diperkirakan berisi entri yang menghasilkan NA
# Practical: parse a messy survey score column
raw_scores <- c('8', '7', 'N/A', '9', 'skip', '6')
numeric_scores <- suppressWarnings(as.numeric(raw_scores))
cat('Parsed:', numeric_scores, '
')
cat('Valid responses:', sum(!is.na(numeric_scores)), '
')
cat('Average score: ', round(mean(numeric_scores, na.rm = TRUE), 2), '
')Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konversi Logical dan Character” gratis?
Ya — teks lengkap “Konversi Logical dan Character” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus R Academy, upgrade ke CoddyKit PRO. Kursus R Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Konversi Logical dan Character”?
Konversikan logical, character, dan numeric dengan as.logical() serta as.character(). Kamu berlatih R Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai R Academy?
Tidak diperlukan pengalaman sebelumnya. R Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Konversi Logical dan Character” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Gambaran Umum Sistem Tipe R
- Mengonversi Antarjenis Numerik
- Konversi Logical dan Character
- Kesalahan Koersi dan Praktik Terbaik