Mendeteksi dan Menghitung Nilai yang Hilang
Gunakan is.na(), anyNA(), dan sum(is.na()) untuk mengaudit data yang hilang.
Mendeteksi dan Menghitung Nilai yang Hilang adalah pelajaran R Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
is.na() — Alat Utama untuk Mendeteksi
is.na(x) menguji setiap elemen x dan mengembalikan vektor logical dengan panjang yang sama, berisi TRUE ketika nilainya adalah NA (atau NaN). Ini adalah alat dasar untuk mendeteksi nilai yang hilang.
heights <- c(175, NA, 162, 188, NA, 170, NA, 165)
cat('Heights:', heights, '
')
cat('is.na() :', is.na(heights), '
')
cat('!is.na():', !is.na(heights), '
')Menghitung NA dengan sum(is.na())
Karena TRUE == 1 dan FALSE == 0 dalam aritmetika, sum(is.na(x)) menghitung jumlah nilai yang hilang. mean(is.na(x)) memberikan proporsi nilai yang hilang.
survey <- c(8, NA, 6, NA, 9, 7, NA, 5, NA, 8)
cat('Survey responses:', survey, '
')
cat('Total NAs: ', sum(is.na(survey)), '
')
cat('Total present:', sum(!is.na(survey)), '
')
cat('NA proportion:', mean(is.na(survey)), '
')
cat('NA percentage:', mean(is.na(survey)) * 100, '%
')anyNA() — Pemeriksaan Keberadaan dengan Cepat
anyNA(x) mengembalikan satu TRUE jika ada elemen yang merupakan NA; jika tidak, hasilnya FALSE. Fungsi ini lebih cepat daripada any(is.na(x)) karena berhenti saat menemukan NA pertama.
complete_data <- c(1, 2, 3, 4, 5)
incomplete_data <- c(1, 2, NA, 4, 5)
cat('anyNA(complete) :', anyNA(complete_data), '
') # FALSE
cat('anyNA(incomplete):', anyNA(incomplete_data), '
') # TRUE
# Use in validation
if (anyNA(incomplete_data)) {
cat('Warning: data contains missing values!
')
}which(is.na()) — Menemukan Posisi
which(is.na(x)) mengembalikan indeks (posisi) nilai yang hilang dalam sebuah vektor. Ini penting untuk mengaudit observasi yang hilang dan melakukan imputasi secara terarah.
temperatures <- c(22.1, NA, 19.8, NA, 25.1, NA, 17.3, 20.0)
cat('Temperatures:', temperatures, '
')
missing_pos <- which(is.na(temperatures))
cat('Missing at positions:', missing_pos, '
')
cat('Number missing:', length(missing_pos), '
')
# What values are NOT missing?
present_pos <- which(!is.na(temperatures))
cat('Present at positions:', present_pos, '
')Menghitung NA dalam Data Frame
Untuk data frame, is.na(df) mengembalikan matriks logical dengan dimensi yang sama. Menggabungkannya dengan colSums() memberikan jumlah nilai yang hilang per kolom—cara cepat untuk mengaudit kualitas data.
# Simulate a small data frame
name_col <- c('Alice', 'Bob', 'Carol', 'Dave', 'Eve')
age_col <- c(28, NA, 32, NA, 29)
sal_col <- c(55000, 72000, NA, 90000, 61000)
scr_col <- c(88, NA, 75, NA, NA)
cat('Age NAs: ', sum(is.na(age_col)), '
')
cat('Salary NAs:', sum(is.na(sal_col)), '
')
cat('Score NAs: ', sum(is.na(scr_col)), '
')Pola colSums(is.na(df))
Pola colSums(is.na(df)) adalah cara tercepat untuk menghitung nilai yang hilang per kolom dalam data frame. Hasilnya berupa vektor numeric bernama yang menunjukkan jumlah NA di setiap kolom.
# Build a data frame manually
df <- data.frame(
name = c('Alice', 'Bob', 'Carol', 'Dave', 'Eve'),
age = c(28, NA, 32, NA, 29),
salary = c(55000, 72000, NA, 90000, 61000),
score = c(88, NA, 75, NA, NA)
)
cat('Missing values per column:
')
print(colSums(is.na(df)))
cat('Total missing:', sum(is.na(df)), '
')Proporsi NA per Kolom
Membagi dengan jumlah baris memberikan proporsi nilai yang hilang per kolom. Ini lebih informatif daripada jumlah mentah ketika kolom memiliki panjang yang berbeda.
df <- data.frame(
x1 = c(1, NA, 3, NA, 5),
x2 = c(NA, 2, NA, 4, NA),
x3 = c(1, 2, 3, NA, 5)
)
n_rows <- nrow(df)
na_counts <- colSums(is.na(df))
na_pct <- round(na_counts / n_rows * 100, 1)
cat('NA counts: '); print(na_counts)
cat('NA percentage: '); print(na_pct)table(is.na()) — Menghitung Frekuensi
table(is.na(x)) menghasilkan tabel frekuensi bernama yang menunjukkan jumlah nilai FALSE (ada) dan TRUE (hilang). Hasilnya mudah dibaca sekilas.
responses <- c(5, NA, 8, 6, NA, 9, 7, NA, NA, 8)
cat('NA frequency table:
')
print(table(is.na(responses)))
# For multiple columns:
cat('Age table:
')
ages <- c(28, NA, 32, NA, 29)
print(table(is.na(ages)))Menemukan Baris yang Memiliki NA
Untuk menemukan baris dalam data frame yang memiliki setidaknya satu nilai yang hilang, gunakan apply(is.na(df), 1, any). Hasilnya adalah vektor logical dengan TRUE untuk baris yang tidak lengkap.
df <- data.frame(
id = 1:5,
age = c(28, NA, 32, NA, 29),
salary = c(55000, 72000, NA, 90000, 61000)
)
# Which rows have at least one NA?
has_na <- apply(is.na(df), 1, any)
cat('Rows with any NA:', which(has_na), '
')
cat('Complete rows: ', which(!has_na), '
')
cat('Complete row count:', sum(!has_na), '/', nrow(df), '
')Mengaudit Dataset Lengkap
Alur kerja audit NA yang praktis: hitung, temukan, dan laporkan nilai yang hilang untuk memahami kualitas data sebelum analisis. Berikut fungsi audit mandiri.
audit_na <- function(v, label) {
n_total <- length(v)
n_missing <- sum(is.na(v))
pct <- round(n_missing / n_total * 100, 1)
positions <- which(is.na(v))
cat(label, ':', n_missing, '/', n_total,
'(', pct, '%) NA at positions', positions, '
')
}
heights <- c(175, NA, 162, 188, NA, 170)
weights <- c(70, 85, NA, 92, 68, NA)
audit_na(heights, 'Height')
audit_na(weights, 'Weight')Ringkasan Deteksi NA
Referensi singkat alat deteksi NA:
is.na(x)— vektor logical: TRUE pada posisi yang berisi NAanyNA(x)— satu TRUE/FALSE: apakah ada NA?sum(is.na(x))— jumlah NAmean(is.na(x))— proporsi NAwhich(is.na(x))— posisi NAcolSums(is.na(df))— jumlah NA per kolomtable(is.na(x))— tabel frekuensi NA/non-NA
x <- c(10, NA, 30, NA, 50, NA, 70)
cat('is.na: ', is.na(x), '
')
cat('anyNA: ', anyNA(x), '
')
cat('sum(is.na): ', sum(is.na(x)), '
')
cat('mean(is.na): ', mean(is.na(x)), '
')
cat('which(is.na):', which(is.na(x)), '
')Pemeriksaan Singkat
Apa hasil dari sum(is.na(c(1, NA, 3, NA, 5)))?
Ringkasan: Mendeteksi dan Menghitung NA
Kerja bagus! Hal-hal penting dari pelajaran ini:
is.na(x)adalah alat utama—mengembalikan vektor logicalsum(is.na(x))menghitung nilai yang hilang;mean(is.na(x))memberikan proporsinyaanyNA(x)adalah pemeriksaan cepat untuk mengetahui keberadaan NAwhich(is.na(x))menunjukkan posisi NA secara tepatcolSums(is.na(df))adalah cara standar untuk mengaudit data frame- Jangan pernah menggunakan
x == NAuntuk mendeteksi NA—selalu gunakanis.na(x)
# Full audit of a data frame in 3 lines
df <- data.frame(a=c(1,NA,3), b=c(NA,2,NA), c=c(1,2,3))
cat('Per column:', colSums(is.na(df)), '
')
cat('Total: ', sum(is.na(df)), '/', nrow(df)*ncol(df), '
')
cat('Complete rows:', sum(complete.cases(df)), '/', nrow(df), '
')Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendeteksi dan Menghitung Nilai yang Hilang” gratis?
Ya — teks lengkap “Mendeteksi dan Menghitung Nilai yang Hilang” 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 “Mendeteksi dan Menghitung Nilai yang Hilang”?
Gunakan is.na(), anyNA(), dan sum(is.na()) untuk mengaudit data yang hilang. 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 2 dari 4.
Berapa lama pelajaran “Mendeteksi dan Menghitung Nilai yang Hilang” 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
- Memahami NA dalam R
- Mendeteksi dan Menghitung Nilai yang Hilang
- Menghapus dan Mengganti Nilai NA
- NA dalam Perhitungan dan Agregasi