Tekdüzelik

R ile Veri Temizleme

Maggie Matsui

Content Developer @ DataCamp

Tekdüzelik

  • Farklı birimler veya biçimler
    • Sıcaklık: °C vs. °F
    • Ağırlık: kg vs. g vs. lb
    • Para: USD $ vs. GBP £ vs. JPY ¥
    • Tarih: DD-MM-YYYY vs. MM-DD-YYYY vs. YYYY-MM-DD
R ile Veri Temizleme

Tekdüzelik sorunları nereden gelir?

Solda, birden çok veri kaynağını temsil eden, oklarla tek bir veri tablosuna bağlanan üç veritabanı. Sağda, veri girişi hatalarını temsil eden bir imleçli serbest metin kutusu ve klavyeli bir bilgisayar.

R ile Veri Temizleme

Tekdüzelik sorunlarını bulma

head(nyc_temps)
         date temp
1  2019-04-01  4.2
2  2019-04-02  7.5
3  2019-04-03 12.2
4  2019-04-04 11.1
5  2019-04-05 41.5
6  2019-04-06 11.9
R ile Veri Temizleme

Tekdüzelik sorunlarını bulma

library(ggplot2)
ggplot(nyc_temps, aes(x = date, y = temp)) +
  geom_point()

Kodun ürettiği grafik. Diğerlerinden belirgin şekilde daha yüksek üç sıcaklık var.

R ile Veri Temizleme

Ne yapılmalı?

  • Tek bir en iyi seçenek yoktur. Veri kümenize bağlıdır!
  • Verinizin kaynağını anlamak için araştırma yapın

Kodun ürettiği grafik. Diğerlerinden belirgin şekilde daha yüksek üç sıcaklık var.

  • 7, 16 ve 23 Nisan verileri, sıcaklığı °F ölçen harici bir kaynaktan
R ile Veri Temizleme

Birim dönüştürme

$$\text{C} = (\text{F} - 32) \times \frac{5}{9}$$

ifelse(condition, value_if_true, value_if_false)

nyc_temps %>%
  mutate(temp_c = ifelse(temp > 50, (temp - 32) * 5 / 9, temp))
         date temp   temp_c
1  2019-04-01  4.2  4.20000
...
7  2019-04-07 58.5 14.72222
...
R ile Veri Temizleme

Birim dönüştürme

nyc_temps %>%
  mutate(temp_c = ifelse(temp > 50, (temp - 32) * 5 / 9, temp)) %>%
  ggplot(aes(x = date, y = temp_c)) +
    geom_point()

Kodun ürettiği grafik; bu kez dönüştürüldükleri için belirgin aykırı değer yok.

R ile Veri Temizleme

Tarihte tekdüzelik

nyc_temps
             date temp_c
1      2019-11-23   5.12
2        01/15/19  -0.67
3  April 24, 2019  17.46
4        08/30/19  26.46
5 October 3, 2019  14.63
6      2019-03-17   3.47

 

Tarih dizesi Date biçimi
"2019-11-23" "%Y-%m-%d"
"01/15/19" "%m/%d/%y"
"April 24, 2019" "%B %d, %Y"

 

R konsolunda ?strptime

R ile Veri Temizleme

Birden çok biçimi ayrıştırma

library(lubridate)
parse_date_time(nyc_temps$date,
                orders = c("%Y-%m-%d", "%m/%d/%y", "%B %d, %Y"))
"2019-11-23 UTC" "2019-01-15 UTC" "2019-04-24 UTC" "2019-08-30 UTC"
"2019-10-03 UTC" "2019-03-17 UTC"
parse_date_time("Monday, January 3",
                orders = c("%Y-%m-%d", "%m/%d/%y", "%B %d, %Y"))
NA
R ile Veri Temizleme

Belirsiz tarihler

02/04/2019 Şubat mı Nisan mı?

  • Verinize bağlıdır!

 

Seçenekler:

  • Eksik kabul edin
  • Veriniz birden çok kaynaktan geliyorsa, kaynağa göre çıkarım yapın
  • Veri kümesindeki diğer bilgilere göre çıkarım yapın
R ile Veri Temizleme

Ayo berlatih!

R ile Veri Temizleme

Preparing Video For Download...