Kayıp Veri İşlemleri
library("robustbase")
data(delivery,package="robustbase") #Hazır veriyi kullanmak için.
df <- delivery
## 'data.frame': 25 obs. of 3 variables:
## $ n.prod : int 7 3 3 4 6 7 2 7 30 5 ...
## $ distance: int 560 220 340 80 150 330 110 210 1460 605 ...
## $ delTime : num 16.7 11.5 12 14.9 13.8 ...
# install.packages("tibble") paketi yüklemek için
library(tibble)
glimpse(df) #tibble kütüphanesi ile
## Observations: 25
## Variables: 3
## $ n.prod <int> 7, 3, 3, 4, 6, 7, 2, 7, 30, 5, 16, 10, 4, 6, 9, 10, 6, 7, 3,…
## $ distance <int> 560, 220, 340, 80, 150, 330, 110, 210, 1460, 605, 688, 215, …
## $ delTime <dbl> 16.68, 11.50, 12.03, 14.88, 13.75, 18.11, 8.00, 17.83, 79.24…
# Özet bilgiler.
summary(df)
## n.prod distance delTime
## Min. : 2.00 Min. : 36.0 Min. : 8.00
## 1st Qu.: 4.00 1st Qu.: 150.0 1st Qu.:13.75
## Median : 7.00 Median : 330.0 Median :18.11
## Mean : 8.76 Mean : 409.3 Mean :22.38
## 3rd Qu.:10.00 3rd Qu.: 605.0 3rd Qu.:21.50
## Max. :30.00 Max. :1460.0 Max. :79.24
df2 <- df
anyNA(df2) # Herhangi bir NA değeri olup olmadığını gösterir.
## [1] FALSE
#HATIRLATMA - Seçme işlemi
df[df$n.prod > 8 & df$distance > 200,]
## n.prod distance delTime
## 9 30 1460 79.24
## 11 16 688 40.33
## 12 10 215 21.00
## 15 9 448 24.00
## 16 10 776 29.00
## 20 17 770 35.10
## 22 26 810 52.32
## 23 9 450 18.75
#df2 şeklinde NA değerleri olan bir data.frame oluşturalım.
df2 <- df
df2[c(2,4), 1] <- NA
df2[c(1,3),2] <- NA
head(df2)
## n.prod distance delTime
## 1 7 NA 16.68
## 2 NA 220 11.50
## 3 3 NA 12.03
## 4 NA 80 14.88
## 5 6 150 13.75
## 6 7 330 18.11
#Sütunlara göre kaçta NA değeri olduğunu görmek için;
colSums(is.na(df2))
## n.prod distance delTime
## 2 2 0
#Sütun ortalamalarını elde etmek için;
colMeans(df2,na.rm=T)
## n.prod distance delTime
## 9.217391 405.739130 22.384000
# Verideki NA değerlerine complete.cases() fonksiyonu ile ulaşılabilir.
summary(complete.cases(df2))
## Mode FALSE TRUE
## logical 4 21
## [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [13] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [25] TRUE
# NA değerlerinin olduğu satıra ulaşmak için;
df2[!complete.cases(df2),]
## n.prod distance delTime
## 1 7 NA 16.68
## 2 NA 220 11.50
## 3 3 NA 12.03
## 4 NA 80 14.88
# NA değerlerini silerek atamak için na.omit() fonksiyonu da kullanılabilir.
# NA olan tüm satırları çıkartır.
df3 <- na.omit(df2)
head(df3)
## n.prod distance delTime
## 5 6 150 13.75
## 6 7 330 18.11
## 7 2 110 8.00
## 8 7 210 17.83
## 9 30 1460 79.24
## 10 5 605 21.50