Eksik Değerleri Belirleme ve Sayma
Eksik verileri denetlemek için is.na(), anyNA() ve sum(is.na()) kullanın.
Eksik Değerleri Belirleme ve Sayma, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
is.na() — Temel Algılama Aracı
is.na(x), x'in her öğesini sınar ve x ile aynı uzunlukta bir logical vektör döndürür; değerin NA (veya NaN) olduğu yerlerde TRUE bulunur. Bu, eksik değerleri algılamanın temel aracıdır.
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), '
')sum(is.na()) ile NA'ları Sayma
Aritmetikte TRUE == 1 ve FALSE == 0 olduğundan, sum(is.na(x)) toplam eksik değer sayısını verir. mean(is.na(x)) ise eksik değerlerin oranını verir.
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() — Hızlı Varlık Kontrolü
anyNA(x), herhangi bir öğe NA ise tek bir TRUE, aksi halde FALSE döndürür. İlk NA bulunduğunda durduğu için any(is.na(x))'ten daha hızlıdır.
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()) — Konumları Bulma
which(is.na(x)), bir vektördeki eksik değerlerin indekslerini (konumlarını) döndürür. Hangi gözlemlerin eksik olduğunu denetlemek ve hedefli veri doldurma yapmak için gereklidir.
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, '
')Veri Çerçevesinde NA'ları Sayma
Veri çerçevelerinde is.na(df), aynı boyutlara sahip bir logical matris döndürür. Bunu colSums() ile birleştirmek, her sütundaki eksik değer sayısını verir; bu, veri kalitesini denetlemenin hızlı bir yoludur.
# 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)), '
')colSums(is.na(df)) Kalıbı
colSums(is.na(df)) kalıbı, bir veri çerçevesinde sütun başına eksik değerleri saymanın en hızlı yoludur. Her sütunda kaç NA bulunduğunu gösteren, adlandırılmış bir numeric vektör döndürür.
# 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)), '
')Sütun Başına NA Oranı
Satır sayısına bölmek, sütun başına eksik değer oranını verir. Sütunların uzunlukları farklı olduğunda bu, ham sayımlardan daha bilgilendiricidir.
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()) — Sıklık Sayımı
table(is.na(x)), kaç tane FALSE (mevcut) ve TRUE (eksik) değer bulunduğunu gösteren adlandırılmış bir sıklık tablosu üretir. İlk bakışta okunması kolaydır.
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)))Herhangi Bir NA İçeren Satırları Bulma
Bir veri çerçevesinde en az bir eksik değer içeren satırları bulmak için apply(is.na(df), 1, any) kullanın. Sonuç, tamamlanmamış satırlar için TRUE içeren bir logical vektördür.
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), '
')Eksiksiz Bir Veri Kümesini Denetleme
Uygulamalı bir NA denetimi iş akışı şöyledir: analizden önce veri kalitesini anlamak için eksik değerleri sayın, konumlarını bulun ve raporlayın. Aşağıda kendi başına çalışabilen bir denetim işlevi yer alıyor.
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')NA Algılama Özeti
NA algılama araçları için hızlı başvuru:
is.na(x)— logical vektör: NA olan yerlerde TRUEanyNA(x)— tek bir TRUE/FALSE: herhangi bir NA var mı?sum(is.na(x))— NA sayısımean(is.na(x))— NA oranıwhich(is.na(x))— NA'ların konumlarıcolSums(is.na(df))— sütun başına NA sayısıtable(is.na(x))— NA/NA olmayan değerlerin sıklık tablosu
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)), '
')Hızlı Kontrol
sum(is.na(c(1, NA, 3, NA, 5))) ne döndürür?
Özet: NA'ları Algılama ve Sayma
Aferin! Bu dersten çıkarılacak temel noktalar:
is.na(x)birincil araçtır — logical vektör döndürürsum(is.na(x))eksikleri sayar;mean(is.na(x))oranı veriranyNA(x), herhangi bir NA'nın varlığını hızlıca kontrol ederwhich(is.na(x)), NA'ların tam konumlarını gösterircolSums(is.na(df)), bir veri çerçevesini denetlemenin standart yoludur- NA'yı algılamak için hiçbir zaman
x == NAkullanmayın — her zamanis.na(x)kullanın
# 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), '
')Sıkça Sorulan Sorular
“Eksik Değerleri Belirleme ve Sayma” dersi ücretsiz mi?
Evet — “Eksik Değerleri Belirleme ve Sayma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“Eksik Değerleri Belirleme ve Sayma” dersinde ne öğreneceğim?
Eksik verileri denetlemek için is.na(), anyNA() ve sum(is.na()) kullanın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Eksik Değerleri Belirleme ve Sayma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- R'de NA'yı Anlama
- Eksik Değerleri Belirleme ve Sayma
- NA Değerlerini Kaldırma ve Değiştirme
- Hesaplamalarda ve Toplamalarda NA