CSV, türler ve eksik değerler
Hedef: 12 satırlık bir CSV'yi RStudio'da açabilmek, değişken türünü anlayabilmek, doğru satırları seçebilmek, eksikliği kontrol edebilmek ve kısa bir grafik yorumlamak.
1. Tahmin et
c(4,8,12) vektörünün ortalaması nedir? Bir veri tablosunda satırın ve sütunun farklı görevleri nedir? Eksik değer neden sıfır değildir?
2. Veri sözlüğü, CSV ve türler
student_id bir karakter kimliği; study_hours ve quiz_score sayısal; group bir kategori. S09 puan, S10 çalışma saati boş bırakılmıştır.
getwd()
file.exists("data/class_synthetic.csv")
class_data <- read.csv("data/class_synthetic.csv",
na.strings=c("","NA"),
stringsAsFactors=FALSE)
class_data$group <- factor(class_data$group,
levels=c("A","B"))
head(class_data)
str(class_data)
dim(class_data)
Kontrol sorusu: student_id neden matematiksel olarak bir ölçüm değil? logical nasıl oluşur?
3. İndeksleme ve filtreleme
class_data[1, ]
class_data[, "quiz_score"]
class_data[1:3, c("student_id","group")]
names(class_data)
class_data$class_data # Bilinçli olarak yanlış sütun adı
Görev: Yalnız grup A'yı seç; ardından yalnız puanı 70 veya üzerinde olan ve puanı eksik olmayan satırları seç; ID ve puan sütunlarını içeren bir tablo üret.
İpucu: Eksik değerle yapılan karşılaştırma NA üretebilir. Filtrede bunu düşün; sadece x > 70 her zaman yeterli değildir.
4. Eksik veri
sum(is.na(class_data$quiz_score))
mean(class_data$quiz_score)
mean(class_data$quiz_score, na.rm=TRUE)
ok <- complete.cases(class_data[, c("study_hours","quiz_score")])
table(class_data$group)Görev: İki sayısal sütundaki eksik gözlemleri say; iki değişkende de değeri olan satırları bul; A ve B için mevcut puan ortalamalarını hesapla. Orijinal CSV yerine kopyada bir ölçümü NA yap ve neyin değiştiğini açıkla.
5. İki değişkenli grafik
ok <- complete.cases(class_data[, c("study_hours","quiz_score")])
plot(class_data$study_hours[ok],class_data$quiz_score[ok],
xlab="Study hours",ylab="Quiz score",pch=19)Grafikte neden tüm 12 satır görünmüyor? Gözlenen ilişki bir neden-sonuç kanıtı değildir: başka hangi açıklamalar mümkün olabilir?
6. Kendi başına çöz
- Grup B ve puanı eksik olmayan satırlardan bir veri çerçevesi oluştur.
- Kaç satır ve puan ortalaması nedir?
- Puanı 75'ten yüksek kayıtların yalnız ID'lerini bul.
- İngilizce iki cümle yaz: biri betimleyici sonuç, biri veri ve tasarım sınırlaması.
Exit ticket
NA ile 0 farkı nedir? [row,column] ile $ farkı nedir? na.rm=TRUE eksik verileri kalıcı olarak siler mi?
Ev çalışması: Altı hayalî gözlemli CSV oluştur; en az bir NA bırak. CSV'yi tekrar oku, iki özet çıkar ve 90–120 kelimelik açıklama yaz.