EKONOMETRİ PROJESİ

KAGGLE PROJESİ

SPACESHİP TİTANİC GEMİSİ

Hoş geldiniz 2912 yılına, burada veri bilimi becerileriniz bir kozmik gizemi çözmek için gerekiyor. Dört ışık yılı uzaklıktan bir ileti aldık ve durum pek iç açıcı değil. Uzay Gemisi Titanic, bir ay önce fırlatılan yıldızlararası bir yolcu gemisiydi. Yaklaşık 13,000 yolcusuyla gemi, güneş sistemimizden üç yeni yaşanabilir ötegezegenine göçmen taşıma amacıyla ilk seferine çıktı.

İlk varış noktası olan sıcak 55 Cancri E’ye giden yolunda Alpha Centauri’yi dönerken dikkatsiz Spaceship Titanic, bir toz bulutu içinde gizlenmiş bir uzay-zaman anomalisi ile çarpıştı. Ne yazık ki, isim benzerliğine rağmen, gemi 1000 yıl önceki adını taşıyan gemi gibi benzer bir kaderi paylaştı. Gemi bütünlüğünü korudu, ancak neredeyse yolcuların yarısı alternatif bir boyuta.

library(ggplot2)
## Warning: le package 'ggplot2' a été compilé avec la version R 4.3.3

AMERİKA VE TÜRKİYE İÇİN ENFLASYON VERİLERİ OLUŞTURALIM

library(ggplot2)
library(reshape2)
## Warning: le package 'reshape2' a été compilé avec la version R 4.3.3
turkey_inflation <- data.frame(
  Year = c(2018, 2019, 2020, 2021, 2022, 2023, 2024),
  Inflation_Rate = c(20.3, 11.1, 14.0, 17.9, 15.5, 19.8, 16.2)  # Türkiye'nin yıllık enflasyon oranları (%)
)

ukraine_inflation <- data.frame(
  Year = c(2018, 2019, 2020, 2021, 2022, 2023, 2024),
  Inflation_Rate = c(10.9, 6.5, 5.2, 7.8, 8.3, 11.4, 9.7)  # Ukrayna'nın yıllık enflasyon oranları (%)
)


combined_data <- merge(turkey_inflation, ukraine_inflation, by = "Year")

ggplot(data = combined_data, aes(x = Year)) +
  geom_line(aes(y = Inflation_Rate.x, color = "Turkey"), linetype = "solid", size = 1.2) +
  geom_line(aes(y = Inflation_Rate.y, color = "Ukraine"), linetype = "dashed", size = 1.2) +
  labs(title = "Türkiye ve Ukrayna Enflasyon Oranları (2018-2024)",
       y = "Enflasyon Oranı (%)", color = "Ülke") +
  scale_color_manual(values = c("Turkey" = "blue", "Ukraine" = "red"),
                     labels = c("Türkiye", "Ukrayna")) +
 theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

MAKİNE ÖĞRENME

Makine öğrenimi, bir bilgisayarın örnek verilere dayalı olarak belirli bir görevi öğrenmesini ve gerçek dünya verilerine dayalı deneyimlerden bilgi çıkarmasını içeren bir yapay zeka alanıdır. Bu, bir algoritmanın veri setleri üzerindeki desenleri tanımasına, bu desenlere göre öngörüler yapmasına ve kararlar almasına olanak tanır.

Makine öğrenimi genellikle denetimli, denetimsiz ve takviyeli öğrenme olmak üzere üç ana kategoriye ayrılır:

Denetimli Öğrenme: Bu türde, algoritma giriş verileri ve bu verilere karşılık gelen çıktılar arasındaki ilişkiyi öğrenir. Algoritma, verileri kullanarak belirli bir çıktı tahmininde bulunur. Örnekler arasında sınıflandırma ve regresyon bulunmaktadır. Sınıflandırma, verilen bir girdiye dayanarak kategorilere sınıflandırma yapmayı içerirken, regresyon, sürekli bir çıktıya sahip tahminlerde bulunmayı içerir.

Denetimsiz Öğrenme: Denetimsiz öğrenmede, algoritma verilerdeki yapıları ve desenleri keşfetmeye çalışır. Tipik olarak, giriş verileri ve bu verilerdeki desenlerle ilgili herhangi bir etiket yoktur. Bu tür algoritmalar, kümeleme ve boyut azaltma gibi görevleri gerçekleştirebilir. Kümeleme, verileri benzerliklerine göre gruplara ayırırken, boyut azaltma, veri setindeki değişken sayısını azaltarak veri setinin karmaşıklığını azaltır.

Takviyeli Öğrenme: Bu türde, bir ajanın belirli bir ortamda bir görevi en iyi şekilde nasıl gerçekleştireceğini öğrenmesi hedeflenir. Ajan, ortamla etkileşime girer, davranışlarını gözlemleyerek ve ödüller ve cezalar aracılığıyla geribildirim alarak öğrenir. Bu algoritma türü, oyun teorisi ve robotik gibi alanlarda yaygın olarak kullanılır.

Makine öğrenimi, birçok farklı alanda geniş bir uygulama yelpazesine sahiptir, bu da tahmin, sınıflandırma, kümelenme, doğal dil işleme, görüntü işleme ve daha fazlasını içerir. Her bir uygulama alanı, farklı makine öğrenimi teknikleri ve algoritmaları gerektirebilir. Veri analizi, model oluşturma, model eğitimi, model değerlendirmesi ve modelinizi gerçek dünya verileriyle kullanma gibi adımlar genellikle makine öğrenimi sürecinin

FORMÜL YAZMA

$$ =

$$

\[ \Delta = b^2-4ac \] \[ A = x^2 - 5x+1 \]

ÖDEV Ortalama,standart sapma, kovaryans ve korelasyon nedir?

Aritmetik Ortalama

Aritmetik ortalama veya ortalama , bir veri setindeki tüm değerlerin toplamının, değerlerin sayısına bölünmesiyle elde edilen bir ölçüdür. Aritmetik ortalama formülü .şekildedir:

\[ \bar{x} = \frac {\Sigma^n_İ (X_i)}{n} \]

Standart Sapma

Standart sapma, bir veri setindeki değerlerin ortalamadan ne kadar sapma gösterdiğini ölçen bir istatistiksel kavramdır.

\[ \sigma = \sqrt \frac {\Sigma^n_i (x_i-\bar{x})^2}{n} \]

KORELASYON

iki değişken arasındaki ilişkiyi ölçen bir istatistiksel kavramdır. Pearson korelasyon katsayısı, en yaygın kullanılan korelasyon ölçüsüdür. Pearson korelasyon katsayısının formülü şu şekildedir:

\[ r=\frac{\Sigma(x_i-\bar{x})(y_i-\bar{y})}{\sqrt{\Sigma(x_i-\bar{x})^2\Sigma(y_i-\bar{y})^2}} \]

VARYANS

Her bir veri noktasının ortalamadan farklı olduğu ortalama dereceyi ölçer.

\[ {{\sigma}^2 = \frac {\Sigma^n_i (X_i-\bar{X})^2}{n-1}} \]

Kovaryans

Olasılık teorisi ve istatistikte, kovaryans iki değişkenin birlikte ne kadar değiştiklerinin ölçüsüdür. $$ cov(x,y)=

$$

Örnek

x:[15,3,8,3,9] y:[9,4,7,1,3]

Çözümler

Verilerin Ortalamalarını Hesaplayalım

\[ \bar{x} = \frac {\Sigma(15+3+8+9+3)}{5}=7,6 \]

\[ \bar{y} = \frac {\Sigma(9+4+7+1+3)}{5} =4,8 \]

Verilerin Standar sapmasını Hesaplayalım

\[ \sigma = \sqrt \frac {\Sigma ((9-4,8)^2+(4-4,8)^2+(7-4,8)^2+(1-4,8)^2+(3-4,8)^2}{5}=0,26 \] \[ \sigma = \sqrt \frac {\Sigma ((15-7,6)^2+(3-7,6)^2+(8-7,6)^2+(9-7,6)^2+(3-7,6)^2}{5}=2,86 \]

Verilerin Varyansını Hesaplayalım

\[ \sigma = \ \frac {\Sigma ((15-7,6)^2+(3-7,6)^2+(8-7,6)^2+(9-7,6)^2+(3-7,6)^2}{5}=8,17 \] \[ \sigma^2=8,17 \]

\[ \sigma^2 = \ \frac {\Sigma ((15-7,6)^2+(3-7,6)^2+(8-7,6)^2+(9-7,6)^2+(3-7,6)^2}{5-1}=24,8 \]

\[ \sigma^2=24,8 \]

Verilerin Kovaryansını Hesaplayalım

\[ cov(x,y)=\frac{(15-7,6)(9-4,8)+(3-7,6)(4-4,8)+(8-7,6)(7-4,8)+(9-7,6)(3-4,8)}{4}=11,544 \]

library(readr)
## Warning: le package 'readr' a été compilé avec la version R 4.3.3
train <- read_csv("train.csv")
## Rows: 8693 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
## dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
## lgl (3): CryoSleep, VIP, Transported
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
library(readr)
test <- read_csv("test.csv")
## Rows: 4277 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): PassengerId, HomePlanet, Cabin, Destination, Name
## dbl (6): Age, RoomService, FoodCourt, ShoppingMall, Spa, VRDeck
## lgl (2): CryoSleep, VIP
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Açıklama

Bu Projeden, Uzay Gemisi Titanic’in uzay-zaman anormalliği ile çarpışması sırasında bir yolcunun alternatif bir boyuta taşınıp taşınmadığını tahmin etmektir. Bu tahminleri yapmanıza yardımcı olmak için, geminin hasar görmüş bilgisayar sisteminden kurtarılan bir dizi kişisel kayıt verilmiştir.

Dosya ve Veri Alanı Açıklamaları train.csv - Eğitim verisi olarak kullanılacak yaklaşık üçte ikisi (~8700) yolcunun kişisel kayıtları.

  • PassengerId - Her yolcu için benzersiz bir kimlik. Her kimlik, yolcunun seyahat ettiği bir grubu gösteren gggg ile başlar ve pp grup içindeki sırasını temsil eder. Bir gruptaki insanlar genellikle aile üyeleridir, ancak her zaman değil.

  • HomePlanet - Yolcunun hareket ettiği gezegen, genellikle kalıcı ikamet gezegenleri. CryoSleep - Yolcunun yolculuğun süresi boyunca dondurulmuş animasyona alınıp alınmayacağını gösterir. CryoSleep’te olan yolcular kabinlerine kapatılmıştır.

  • Cabin - Yolcunun konakladığı kabin numarası. deck/num/side şeklinde alınır, burada side, Port için P veya Starboard için S olabilir.

  • Destination - Yolcunun ineceği gezegen.

  • Age - Yolcunun yaşı.

  • VIP - Yolcunun yolculuk sırasında özel VIP hizmeti için ödeme yapılıp yapılmadığını belirtir. RoomService, FoodCourt, ShoppingMall, Spa, VRDeck - Yolcunun Spaceship Titanic’in birçok lüks olanaklarında ne kadar fatura ödediği.

  • Name - Yolcunun adı ve soyadı.

  • Transported - Yolcunun başka bir boyuta taşınıp taşınmadığı. Bu, hedef, tahmin etmeye çalıştığınız sütun.

  • test.csv - Geri kalan üçte biri (~4300) yolcunun kişisel kayıtları, test verisi olarak kullanılacaktır. Göreviniz, bu setteki yolcular için Transported değerini tahmin etmektir.

  • sample_submission.csv - Doğru formatta bir sunum dosyası.

  • PassengerId - Test setindeki her yolcu için kimlik.

  • Transported - Hedef. Her yolcu için, True veya False değerlerinden birini tahmin edin.

library(explore)
## Warning: le package 'explore' a été compilé avec la version R 4.3.3
library(dplyr)
## Warning: le package 'dplyr' a été compilé avec la version R 4.3.3
## 
## Attachement du package : 'dplyr'
## Les objets suivants sont masqués depuis 'package:stats':
## 
##     filter, lag
## Les objets suivants sont masqués depuis 'package:base':
## 
##     intersect, setdiff, setequal, union

TRAİN

train %>% describe_all()
## # A tibble: 14 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   chr     201    2.3      4    NA  NA       NA
##  3 CryoSleep    lgl     217    2.5      3     0   0.36     1
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 Destination  chr     182    2.1      4    NA  NA       NA
##  6 Age          dbl     179    2.1     81     0  28.8     79
##  7 VIP          lgl     203    2.3      3     0   0.02     1
##  8 RoomService  dbl     181    2.1   1274     0 225.   14327
##  9 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 10 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 11 Spa          dbl     183    2.1   1328     0 311.   22408
## 12 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 13 Name         chr     200    2.3   8474    NA  NA       NA
## 14 Transported  lgl       0    0        2     0   0.5      1
library(tidyverse)
## Warning: le package 'tidyverse' a été compilé avec la version R 4.3.3
## Warning: le package 'tidyr' a été compilé avec la version R 4.3.3
## Warning: le package 'purrr' a été compilé avec la version R 4.3.3
## Warning: le package 'stringr' a été compilé avec la version R 4.3.3
## Warning: le package 'forcats' a été compilé avec la version R 4.3.3
## Warning: le package 'lubridate' a été compilé avec la version R 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(dplyr)
library(tidyr)
library(tidyr)

CABİN AYRILAYALIM

library(tidyr)
train <- separate(train, Cabin, into = c("sutün1", "sutün2", "sutün3"), sep = "/", remove=FALSE)
summary(train)
##  PassengerId         HomePlanet        CryoSleep          Cabin          
##  Length:8693        Length:8693        Mode :logical   Length:8693       
##  Class :character   Class :character   FALSE:5439      Class :character  
##  Mode  :character   Mode  :character   TRUE :3037      Mode  :character  
##                                        NA's :217                         
##                                                                          
##                                                                          
##                                                                          
##     sutün1             sutün2             sutün3          Destination       
##  Length:8693        Length:8693        Length:8693        Length:8693       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       Age           VIP           RoomService        FoodCourt      
##  Min.   : 0.00   Mode :logical   Min.   :    0.0   Min.   :    0.0  
##  1st Qu.:19.00   FALSE:8291      1st Qu.:    0.0   1st Qu.:    0.0  
##  Median :27.00   TRUE :199       Median :    0.0   Median :    0.0  
##  Mean   :28.83   NA's :203       Mean   :  224.7   Mean   :  458.1  
##  3rd Qu.:38.00                   3rd Qu.:   47.0   3rd Qu.:   76.0  
##  Max.   :79.00                   Max.   :14327.0   Max.   :29813.0  
##  NA's   :179                     NA's   :181       NA's   :183      
##   ShoppingMall          Spa              VRDeck            Name          
##  Min.   :    0.0   Min.   :    0.0   Min.   :    0.0   Length:8693       
##  1st Qu.:    0.0   1st Qu.:    0.0   1st Qu.:    0.0   Class :character  
##  Median :    0.0   Median :    0.0   Median :    0.0   Mode  :character  
##  Mean   :  173.7   Mean   :  311.1   Mean   :  304.9                     
##  3rd Qu.:   27.0   3rd Qu.:   59.0   3rd Qu.:   46.0                     
##  Max.   :23492.0   Max.   :22408.0   Max.   :24133.0                     
##  NA's   :208       NA's   :183       NA's   :188                         
##  Transported    
##  Mode :logical  
##  FALSE:4315     
##  TRUE :4378     
##                 
##                 
##                 
## 
library(dplyr)

##PASSENGER İKİYE AYRILMA

train[c("ailenum", "ailesira")] <- str_split_fixed(train$PassengerId, "_",2)
summary(train)
##  PassengerId         HomePlanet        CryoSleep          Cabin          
##  Length:8693        Length:8693        Mode :logical   Length:8693       
##  Class :character   Class :character   FALSE:5439      Class :character  
##  Mode  :character   Mode  :character   TRUE :3037      Mode  :character  
##                                        NA's :217                         
##                                                                          
##                                                                          
##                                                                          
##     sutün1             sutün2             sutün3          Destination       
##  Length:8693        Length:8693        Length:8693        Length:8693       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       Age           VIP           RoomService        FoodCourt      
##  Min.   : 0.00   Mode :logical   Min.   :    0.0   Min.   :    0.0  
##  1st Qu.:19.00   FALSE:8291      1st Qu.:    0.0   1st Qu.:    0.0  
##  Median :27.00   TRUE :199       Median :    0.0   Median :    0.0  
##  Mean   :28.83   NA's :203       Mean   :  224.7   Mean   :  458.1  
##  3rd Qu.:38.00                   3rd Qu.:   47.0   3rd Qu.:   76.0  
##  Max.   :79.00                   Max.   :14327.0   Max.   :29813.0  
##  NA's   :179                     NA's   :181       NA's   :183      
##   ShoppingMall          Spa              VRDeck            Name          
##  Min.   :    0.0   Min.   :    0.0   Min.   :    0.0   Length:8693       
##  1st Qu.:    0.0   1st Qu.:    0.0   1st Qu.:    0.0   Class :character  
##  Median :    0.0   Median :    0.0   Median :    0.0   Mode  :character  
##  Mean   :  173.7   Mean   :  311.1   Mean   :  304.9                     
##  3rd Qu.:   27.0   3rd Qu.:   59.0   3rd Qu.:   46.0                     
##  Max.   :23492.0   Max.   :22408.0   Max.   :24133.0                     
##  NA's   :208       NA's   :183       NA's   :188                         
##  Transported       ailenum            ailesira        
##  Mode :logical   Length:8693        Length:8693       
##  FALSE:4315      Class :character   Class :character  
##  TRUE :4378      Mode  :character   Mode  :character  
##                                                       
##                                                       
##                                                       
## 
library(dplyr)

HİSTOGRAMLAR

ggplot(train, aes(x = Age)) +
  geom_histogram(fill = "red", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 179 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(train, aes(x = RoomService)) +
  geom_histogram(fill = "red", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 181 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(train, aes(x = FoodCourt)) +
  geom_histogram(fill = "red", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(train, aes(x = ShoppingMall)) +
  geom_histogram(fill = "red", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 208 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(train, aes(x = Spa)) +
  geom_histogram(fill = "red", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_bin()`).

library(dplyr)
head(train)
## # A tibble: 6 × 19
##   PassengerId HomePlanet CryoSleep Cabin sutün1 sutün2 sutün3 Destination    Age
##   <chr>       <chr>      <lgl>     <chr> <chr>  <chr>  <chr>  <chr>        <dbl>
## 1 0001_01     Europa     FALSE     B/0/P B      0      P      TRAPPIST-1e     39
## 2 0002_01     Earth      FALSE     F/0/S F      0      S      TRAPPIST-1e     24
## 3 0003_01     Europa     FALSE     A/0/S A      0      S      TRAPPIST-1e     58
## 4 0003_02     Europa     FALSE     A/0/S A      0      S      TRAPPIST-1e     33
## 5 0004_01     Earth      FALSE     F/1/S F      1      S      TRAPPIST-1e     16
## 6 0005_01     Earth      FALSE     F/0/P F      0      P      PSO J318.5-…    44
## # ℹ 10 more variables: VIP <lgl>, RoomService <dbl>, FoodCourt <dbl>,
## #   ShoppingMall <dbl>, Spa <dbl>, VRDeck <dbl>, Name <chr>, Transported <lgl>,
## #   ailenum <chr>, ailesira <chr>

Boşluklar dolduralım

unique(train$HomePlanet)
## [1] "Europa" "Earth"  "Mars"   NA
levels(train$HomePlanet)
## NULL
train$HomePlanet <- addNA(train$HomePlanet)
levels(train$HomePlanet)
## [1] "Earth"  "Europa" "Mars"   NA
levels(train$HomePlanet)[is.na(levels(train$HomePlanet))] <- "0"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    lgl     217    2.5      3     0   0.36     1
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr     182    2.1      4    NA  NA       NA
##  9 Age          dbl     179    2.1     81     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 13 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA

ORTALAMALAR

train <- train %>%
  group_by(HomePlanet,Destination) %>%
  mutate_at(vars(Age), ~replace_na(., mean(., na.rm = TRUE)))
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    lgl     217    2.5      3     0   0.36     1
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr     182    2.1      4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 13 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA
train$CryoSleep <- addNA(train$CryoSleep)
levels(train$CryoSleep)[is.na(levels(train$CryoSleep))] <- "0"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    fct       0    0        3    NA  NA       NA
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr     182    2.1      4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 13 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA
train$CryoSleep[is.na(train$CryoSleep)] <- "0"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    fct       0    0        3    NA  NA       NA
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr     182    2.1      4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 13 ShoppingMall dbl     208    2.4   1116     0 174.   23492
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA
train$Destination[is.na(train$Destination)] <- "0"
train$ShoppingMall[is.na(train$ShoppingMall)] <- "0"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    fct       0    0        3    NA  NA       NA
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr       0    0        4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl     183    2.1   1508     0 458.   29813
## 13 ShoppingMall chr       0    0     1115    NA  NA       NA
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA
train <- train %>% mutate(FoodCourt = coalesce(FoodCourt, 0))
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     8693    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    fct       0    0        3    NA  NA       NA
##  4 Cabin        chr     199    2.3   6561    NA  NA       NA
##  5 sutün1       chr     199    2.3      9    NA  NA       NA
##  6 sutün2       chr     199    2.3   1818    NA  NA       NA
##  7 sutün3       chr     199    2.3      3    NA  NA       NA
##  8 Destination  chr       0    0        4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.8     79
## 10 VIP          lgl     203    2.3      3     0   0.02     1
## 11 RoomService  dbl     181    2.1   1274     0 225.   14327
## 12 FoodCourt    dbl       0    0     1507     0 448.   29813
## 13 ShoppingMall chr       0    0     1115    NA  NA       NA
## 14 Spa          dbl     183    2.1   1328     0 311.   22408
## 15 VRDeck       dbl     188    2.2   1307     0 305.   24133
## 16 Name         chr     200    2.3   8474    NA  NA       NA
## 17 Transported  lgl       0    0        2     0   0.5      1
## 18 ailenum      chr       0    0     6217    NA  NA       NA
## 19 ailesira     chr       0    0        8    NA  NA       NA
train <- train %>% mutate(VRDeck = coalesce(VRDeck, 0))
train$Destination <- addNA(train$Destination)
levels(train$Destination)[is.na(levels(train$Destination))] <- "0"
train$Age <- addNA(train$Age)
levels(train$Age)[is.na(levels(train$Age))] <- "0"
train$Age <- addNA(train$Age)
levels(train$Age)[is.na(levels(train$Age))] <- "0"
train$PassengerId <- addNA(train$PassengerId)
library(ggplot2)
train <- train[complete.cases(train),]
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  dbl       0      0   1202     0 220.    9920
## 12 FoodCourt    dbl       0      0   1399     0 452.   29813
## 13 ShoppingMall chr       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  dbl       0      0   1202     0 220.    9920
## 12 FoodCourt    dbl       0      0   1399     0 452.   29813
## 13 ShoppingMall chr       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$Age <- addNA(train$Age)
levels(train$Age)[is.na(levels(train$Age))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  dbl       0      0   1202     0 220.    9920
## 12 FoodCourt    dbl       0      0   1399     0 452.   29813
## 13 ShoppingMall chr       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$RoomService <- addNA(train$RoomService)
levels(train$RoomService)[is.na(levels(train$RoomService))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  fct       0      0   1202    NA  NA       NA
## 12 FoodCourt    dbl       0      0   1399     0 452.   29813
## 13 ShoppingMall chr       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$FoodCourt <- addNA(train$FoodCourt)
levels(train$FoodCourt)[is.na(levels(train$FoodCourt))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  fct       0      0   1202    NA  NA       NA
## 12 FoodCourt    fct       0      0   1399    NA  NA       NA
## 13 ShoppingMall chr       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$ShoppingMall <- addNA(train$ShoppingMall)
levels(train$ShoppingMall)[is.na(levels(train$ShoppingMall))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  fct       0      0   1202    NA  NA       NA
## 12 FoodCourt    fct       0      0   1399    NA  NA       NA
## 13 ShoppingMall fct       0      0   1058    NA  NA       NA
## 14 Spa          dbl       0      0   1250     0 308.   22408
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$Spa <- addNA(train$Spa)
levels(train$Spa)[is.na(levels(train$Spa))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA  NA       NA
##  2 HomePlanet   fct       0      0      4    NA  NA       NA
##  3 CryoSleep    fct       0      0      3    NA  NA       NA
##  4 Cabin        chr       0      0   6071    NA  NA       NA
##  5 sutün1       chr       0      0      8    NA  NA       NA
##  6 sutün2       chr       0      0   1790    NA  NA       NA
##  7 sutün3       chr       0      0      2    NA  NA       NA
##  8 Destination  fct       0      0      4    NA  NA       NA
##  9 Age          fct       0      0     91    NA  NA       NA
## 10 VIP          lgl       0      0      2     0   0.02     1
## 11 RoomService  fct       0      0   1202    NA  NA       NA
## 12 FoodCourt    fct       0      0   1399    NA  NA       NA
## 13 ShoppingMall fct       0      0   1058    NA  NA       NA
## 14 Spa          fct       0      0   1250    NA  NA       NA
## 15 VRDeck       dbl       0      0   1213     0 296.   20336
## 16 Name         chr       0      0   7740    NA  NA       NA
## 17 Transported  lgl       0      0      2     0   0.5      1
## 18 ailenum      chr       0      0   5685    NA  NA       NA
## 19 ailesira     chr       0      0      8    NA  NA       NA
train$VRDeck <- addNA(train$VRDeck)
levels(train$VRDeck)[is.na(levels(train$VRDeck))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA NA       NA
##  2 HomePlanet   fct       0      0      4    NA NA       NA
##  3 CryoSleep    fct       0      0      3    NA NA       NA
##  4 Cabin        chr       0      0   6071    NA NA       NA
##  5 sutün1       chr       0      0      8    NA NA       NA
##  6 sutün2       chr       0      0   1790    NA NA       NA
##  7 sutün3       chr       0      0      2    NA NA       NA
##  8 Destination  fct       0      0      4    NA NA       NA
##  9 Age          fct       0      0     91    NA NA       NA
## 10 VIP          lgl       0      0      2     0  0.02     1
## 11 RoomService  fct       0      0   1202    NA NA       NA
## 12 FoodCourt    fct       0      0   1399    NA NA       NA
## 13 ShoppingMall fct       0      0   1058    NA NA       NA
## 14 Spa          fct       0      0   1250    NA NA       NA
## 15 VRDeck       fct       0      0   1213    NA NA       NA
## 16 Name         chr       0      0   7740    NA NA       NA
## 17 Transported  lgl       0      0      2     0  0.5      1
## 18 ailenum      chr       0      0   5685    NA NA       NA
## 19 ailesira     chr       0      0      8    NA NA       NA
train$Transported <- addNA(train$Transported)
levels(train$Transported)[is.na(levels(train$Transported))] <- "NA"
train %>% describe_all()
## # A tibble: 19 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  fct       0      0   7758    NA NA       NA
##  2 HomePlanet   fct       0      0      4    NA NA       NA
##  3 CryoSleep    fct       0      0      3    NA NA       NA
##  4 Cabin        chr       0      0   6071    NA NA       NA
##  5 sutün1       chr       0      0      8    NA NA       NA
##  6 sutün2       chr       0      0   1790    NA NA       NA
##  7 sutün3       chr       0      0      2    NA NA       NA
##  8 Destination  fct       0      0      4    NA NA       NA
##  9 Age          fct       0      0     91    NA NA       NA
## 10 VIP          lgl       0      0      2     0  0.02     1
## 11 RoomService  fct       0      0   1202    NA NA       NA
## 12 FoodCourt    fct       0      0   1399    NA NA       NA
## 13 ShoppingMall fct       0      0   1058    NA NA       NA
## 14 Spa          fct       0      0   1250    NA NA       NA
## 15 VRDeck       fct       0      0   1213    NA NA       NA
## 16 Name         chr       0      0   7740    NA NA       NA
## 17 Transported  fct       0      0      2    NA NA       NA
## 18 ailenum      chr       0      0   5685    NA NA       NA
## 19 ailesira     chr       0      0      8    NA NA       NA
df <- data.frame(
  group_id = c(1, 1, 2, 3, 4),
  homeplanet = c("A", "NA", "B", "C", "A")
)
df <- df %>%
  group_by(group_id) %>%
  mutate(homeplanet = ifelse(homeplanet == "NA", first(homeplanet), homeplanet))

print(df)
## # A tibble: 5 × 2
## # Groups:   group_id [4]
##   group_id homeplanet
##      <dbl> <chr>     
## 1        1 A         
## 2        1 A         
## 3        2 B         
## 4        3 C         
## 5        4 A
train[train == ''] <-NA
summary(train)
##   PassengerId    HomePlanet   CryoSleep       Cabin          
##  0001_01:   1   Earth :4102   FALSE:4875   Length:7758       
##  0002_01:   1   Europa:1906   TRUE :2696   Class :character  
##  0003_01:   1   Mars  :1574   0    : 187   Mode  :character  
##  0003_02:   1   0     : 176                                  
##  0004_01:   1                                                
##  0005_01:   1                                                
##  (Other):7752                                                
##     sutün1             sutün2             sutün3                 Destination  
##  Length:7758        Length:7758        Length:7758        0            : 165  
##  Class :character   Class :character   Class :character   55 Cancri e  :1606  
##  Mode  :character   Mode  :character   Mode  :character   PSO J318.5-22: 705  
##                                                           TRAPPIST-1e  :5282  
##                                                                               
##                                                                               
##                                                                               
##       Age          VIP           RoomService     FoodCourt     ShoppingMall 
##  18     : 294   Mode :logical   0      :5088   0      :5044   0      :5160  
##  24     : 288   FALSE:7573      1      : 111   1      :  99   1      : 141  
##  21     : 270   TRUE :185       2      :  71   2      :  58   2      :  69  
##  22     : 267                   3      :  56   3      :  48   3      :  56  
##  19     : 265                   4      :  44   4      :  44   4      :  41  
##  23     : 254                   5      :  26   5      :  30   5      :  34  
##  (Other):6120                   (Other):2362   (Other):2435   (Other):2257  
##       Spa           VRDeck         Name           Transported 
##  0      :4842   0      :5055   Length:7758        FALSE:3845  
##  1      : 134   1      : 121   Class :character   TRUE :3913  
##  2      :  97   2      :  65   Mode  :character   NA   :   0  
##  3      :  51   3      :  53                                  
##  5      :  50   5      :  46                                  
##  4      :  45   4      :  44                                  
##  (Other):2539   (Other):2374                                  
##    ailenum            ailesira        
##  Length:7758        Length:7758       
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
##                                       
## 
library(tidyr)
library(ggplot2)
train <- ifelse(duplicated(train$ailenum) | duplicated(train$ailenum, fromLast = TRUE) , 1, 0)
head(train[c( "PassengerId", "ailesıra", "ailenum",  "aile")] ,20)
## [1] NA NA NA NA
library(VIM)
## Warning: le package 'VIM' a été compilé avec la version R 4.3.3
## Le chargement a nécessité le package : colorspace
## Warning: le package 'colorspace' a été compilé avec la version R 4.3.3
## Le chargement a nécessité le package : grid
## VIM is ready to use.
## Suggestions and bug-reports can be submitted at: https://github.com/statistikat/VIM/issues
## 
## Attachement du package : 'VIM'
## L'objet suivant est masqué depuis 'package:datasets':
## 
##     sleep
library(VIM)
VIM::aggr(x=train, sotvars=T)

test %>% describe_all()
## # A tibble: 13 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA       NA
##  2 HomePlanet   chr      87    2        4    NA  NA       NA
##  3 CryoSleep    lgl      93    2.2      3     0   0.37     1
##  4 Cabin        chr     100    2.3   3266    NA  NA       NA
##  5 Destination  chr      92    2.2      4    NA  NA       NA
##  6 Age          dbl      91    2.1     80     0  28.7     79
##  7 VIP          lgl      93    2.2      3     0   0.02     1
##  8 RoomService  dbl      82    1.9    843     0 219.   11567
##  9 FoodCourt    dbl     106    2.5    903     0 439.   25273
## 10 ShoppingMall dbl      98    2.3    716     0 177.    8292
## 11 Spa          dbl     101    2.4    834     0 303.   19844
## 12 VRDeck       dbl      80    1.9    797     0 311.   22272
## 13 Name         chr      94    2.2   4177    NA  NA       NA
str(test)
## spc_tbl_ [4,277 × 13] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $ PassengerId : chr [1:4277] "0013_01" "0018_01" "0019_01" "0021_01" ...
##  $ HomePlanet  : chr [1:4277] "Earth" "Earth" "Europa" "Europa" ...
##  $ CryoSleep   : logi [1:4277] TRUE FALSE TRUE FALSE FALSE FALSE ...
##  $ Cabin       : chr [1:4277] "G/3/S" "F/4/S" "C/0/S" "C/1/S" ...
##  $ Destination : chr [1:4277] "TRAPPIST-1e" "TRAPPIST-1e" "55 Cancri e" "TRAPPIST-1e" ...
##  $ Age         : num [1:4277] 27 19 31 38 20 31 21 20 23 24 ...
##  $ VIP         : logi [1:4277] FALSE FALSE FALSE FALSE FALSE FALSE ...
##  $ RoomService : num [1:4277] 0 0 0 0 10 0 0 0 0 0 ...
##  $ FoodCourt   : num [1:4277] 0 9 0 6652 0 ...
##  $ ShoppingMall: num [1:4277] 0 0 0 0 635 263 0 0 0 0 ...
##  $ Spa         : num [1:4277] 0 2823 0 181 0 ...
##  $ VRDeck      : num [1:4277] 0 0 0 585 0 60 0 0 0 0 ...
##  $ Name        : chr [1:4277] "Nelly Carsoning" "Lerome Peckers" "Sabih Unhearfus" "Meratz Caltilter" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   PassengerId = col_character(),
##   ..   HomePlanet = col_character(),
##   ..   CryoSleep = col_logical(),
##   ..   Cabin = col_character(),
##   ..   Destination = col_character(),
##   ..   Age = col_double(),
##   ..   VIP = col_logical(),
##   ..   RoomService = col_double(),
##   ..   FoodCourt = col_double(),
##   ..   ShoppingMall = col_double(),
##   ..   Spa = col_double(),
##   ..   VRDeck = col_double(),
##   ..   Name = col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>

PASSENGER İKİYE AYRILMA

test[c("ailesıra", "ailenum")] <- str_split_fixed(test$PassengerId, "_",2)

HİSTOGRAMLAR

ggplot(test, aes(x = Age)) +
  geom_histogram(fill = "blue", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 91 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(test, aes(x = FoodCourt)) +
  geom_histogram(fill = "blue", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 106 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(test, aes(x = ShoppingMall)) +
  geom_histogram(fill = "blue", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(test, aes(x = Spa)) +
  geom_histogram(fill = "blue", color = "black")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## Warning: Removed 101 rows containing non-finite outside the scale range
## (`stat_bin()`).

##CABİN AYRILAMA

test <- separate(test, Cabin, into = c("sutün1", "sutün2", "sutün3"), sep = "/", remove=FALSE)
summary(test)
##  PassengerId         HomePlanet        CryoSleep          Cabin          
##  Length:4277        Length:4277        Mode :logical   Length:4277       
##  Class :character   Class :character   FALSE:2640      Class :character  
##  Mode  :character   Mode  :character   TRUE :1544      Mode  :character  
##                                        NA's :93                          
##                                                                          
##                                                                          
##                                                                          
##     sutün1             sutün2             sutün3          Destination       
##  Length:4277        Length:4277        Length:4277        Length:4277       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##                                                                             
##       Age           VIP           RoomService        FoodCourt      
##  Min.   : 0.00   Mode :logical   Min.   :    0.0   Min.   :    0.0  
##  1st Qu.:19.00   FALSE:4110      1st Qu.:    0.0   1st Qu.:    0.0  
##  Median :26.00   TRUE :74        Median :    0.0   Median :    0.0  
##  Mean   :28.66   NA's :93        Mean   :  219.3   Mean   :  439.5  
##  3rd Qu.:37.00                   3rd Qu.:   53.0   3rd Qu.:   78.0  
##  Max.   :79.00                   Max.   :11567.0   Max.   :25273.0  
##  NA's   :91                      NA's   :82        NA's   :106      
##   ShoppingMall         Spa              VRDeck            Name          
##  Min.   :   0.0   Min.   :    0.0   Min.   :    0.0   Length:4277       
##  1st Qu.:   0.0   1st Qu.:    0.0   1st Qu.:    0.0   Class :character  
##  Median :   0.0   Median :    0.0   Median :    0.0   Mode  :character  
##  Mean   : 177.3   Mean   :  303.1   Mean   :  310.7                     
##  3rd Qu.:  33.0   3rd Qu.:   50.0   3rd Qu.:   36.0                     
##  Max.   :8292.0   Max.   :19844.0   Max.   :22272.0                     
##  NA's   :98       NA's   :101       NA's   :80                          
##    ailesıra           ailenum         
##  Length:4277        Length:4277       
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
##                                       
## 
head(test)
## # A tibble: 6 × 18
##   PassengerId HomePlanet CryoSleep Cabin sutün1 sutün2 sutün3 Destination   Age
##   <chr>       <chr>      <lgl>     <chr> <chr>  <chr>  <chr>  <chr>       <dbl>
## 1 0013_01     Earth      TRUE      G/3/S G      3      S      TRAPPIST-1e    27
## 2 0018_01     Earth      FALSE     F/4/S F      4      S      TRAPPIST-1e    19
## 3 0019_01     Europa     TRUE      C/0/S C      0      S      55 Cancri e    31
## 4 0021_01     Europa     FALSE     C/1/S C      1      S      TRAPPIST-1e    38
## 5 0023_01     Earth      FALSE     F/5/S F      5      S      TRAPPIST-1e    20
## 6 0027_01     Earth      FALSE     F/7/P F      7      P      TRAPPIST-1e    31
## # ℹ 9 more variables: VIP <lgl>, RoomService <dbl>, FoodCourt <dbl>,
## #   ShoppingMall <dbl>, Spa <dbl>, VRDeck <dbl>, Name <chr>, ailesıra <chr>,
## #   ailenum <chr>

Boşlukları dolduralım

unique(test$HomePlanet)
## [1] "Earth"  "Europa" "Mars"   NA
levels(test$HomePlanet)
## NULL
test$HomePlanet <- addNA(test$HomePlanet)
levels(test$HomePlanet)
## [1] "Earth"  "Europa" "Mars"   NA
levels(test$HomePlanet)[is.na(levels(test$HomePlanet))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    lgl      93    2.2      3     0   0.37     1
##  4 Cabin        chr     100    2.3   3266    NA  NA       NA
##  5 sutün1       chr     100    2.3      9    NA  NA       NA
##  6 sutün2       chr     100    2.3   1506    NA  NA       NA
##  7 sutün3       chr     100    2.3      3    NA  NA       NA
##  8 Destination  chr      92    2.2      4    NA  NA       NA
##  9 Age          dbl      91    2.1     80     0  28.7     79
## 10 VIP          lgl      93    2.2      3     0   0.02     1
## 11 RoomService  dbl      82    1.9    843     0 219.   11567
## 12 FoodCourt    dbl     106    2.5    903     0 439.   25273
## 13 ShoppingMall dbl      98    2.3    716     0 177.    8292
## 14 Spa          dbl     101    2.4    834     0 303.   19844
## 15 VRDeck       dbl      80    1.9    797     0 311.   22272
## 16 Name         chr      94    2.2   4177    NA  NA       NA
## 17 ailesıra     chr       0    0     3063    NA  NA       NA
## 18 ailenum      chr       0    0        8    NA  NA       NA

ORTALAMALAR

test <- test %>%
  group_by(HomePlanet,Destination) %>%
  mutate_at(vars(Age), ~replace_na(., mean(., na.rm = TRUE)))
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    lgl      93    2.2      3     0   0.37     1
##  4 Cabin        chr     100    2.3   3266    NA  NA       NA
##  5 sutün1       chr     100    2.3      9    NA  NA       NA
##  6 sutün2       chr     100    2.3   1506    NA  NA       NA
##  7 sutün3       chr     100    2.3      3    NA  NA       NA
##  8 Destination  chr      92    2.2      4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.7     79
## 10 VIP          lgl      93    2.2      3     0   0.02     1
## 11 RoomService  dbl      82    1.9    843     0 219.   11567
## 12 FoodCourt    dbl     106    2.5    903     0 439.   25273
## 13 ShoppingMall dbl      98    2.3    716     0 177.    8292
## 14 Spa          dbl     101    2.4    834     0 303.   19844
## 15 VRDeck       dbl      80    1.9    797     0 311.   22272
## 16 Name         chr      94    2.2   4177    NA  NA       NA
## 17 ailesıra     chr       0    0     3063    NA  NA       NA
## 18 ailenum      chr       0    0        8    NA  NA       NA
test$CryoSleep <- addNA(test$CryoSleep)
levels(test$CryoSleep)[is.na(levels(test$CryoSleep))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min   mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl>  <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA       NA
##  2 HomePlanet   fct       0    0        4    NA  NA       NA
##  3 CryoSleep    fct       0    0        3    NA  NA       NA
##  4 Cabin        chr     100    2.3   3266    NA  NA       NA
##  5 sutün1       chr     100    2.3      9    NA  NA       NA
##  6 sutün2       chr     100    2.3   1506    NA  NA       NA
##  7 sutün3       chr     100    2.3      3    NA  NA       NA
##  8 Destination  chr      92    2.2      4    NA  NA       NA
##  9 Age          dbl       0    0       91     0  28.7     79
## 10 VIP          lgl      93    2.2      3     0   0.02     1
## 11 RoomService  dbl      82    1.9    843     0 219.   11567
## 12 FoodCourt    dbl     106    2.5    903     0 439.   25273
## 13 ShoppingMall dbl      98    2.3    716     0 177.    8292
## 14 Spa          dbl     101    2.4    834     0 303.   19844
## 15 VRDeck       dbl      80    1.9    797     0 311.   22272
## 16 Name         chr      94    2.2   4177    NA  NA       NA
## 17 ailesıra     chr       0    0     3063    NA  NA       NA
## 18 ailenum      chr       0    0        8    NA  NA       NA
test$VIP <- addNA(test$VIP)
levels(test$VIP)[is.na(levels(test$VIP))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA  NA      NA
##  2 HomePlanet   fct       0    0        4    NA  NA      NA
##  3 CryoSleep    fct       0    0        3    NA  NA      NA
##  4 Cabin        chr     100    2.3   3266    NA  NA      NA
##  5 sutün1       chr     100    2.3      9    NA  NA      NA
##  6 sutün2       chr     100    2.3   1506    NA  NA      NA
##  7 sutün3       chr     100    2.3      3    NA  NA      NA
##  8 Destination  chr      92    2.2      4    NA  NA      NA
##  9 Age          dbl       0    0       91     0  28.7    79
## 10 VIP          fct       0    0        3    NA  NA      NA
## 11 RoomService  dbl      82    1.9    843     0 219.  11567
## 12 FoodCourt    dbl     106    2.5    903     0 439.  25273
## 13 ShoppingMall dbl      98    2.3    716     0 177.   8292
## 14 Spa          dbl     101    2.4    834     0 303.  19844
## 15 VRDeck       dbl      80    1.9    797     0 311.  22272
## 16 Name         chr      94    2.2   4177    NA  NA      NA
## 17 ailesıra     chr       0    0     3063    NA  NA      NA
## 18 ailenum      chr       0    0        8    NA  NA      NA
test$Age <- addNA(test$Age)
levels(test$Age)[is.na(levels(test$Age))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA   NA     NA
##  2 HomePlanet   fct       0    0        4    NA   NA     NA
##  3 CryoSleep    fct       0    0        3    NA   NA     NA
##  4 Cabin        chr     100    2.3   3266    NA   NA     NA
##  5 sutün1       chr     100    2.3      9    NA   NA     NA
##  6 sutün2       chr     100    2.3   1506    NA   NA     NA
##  7 sutün3       chr     100    2.3      3    NA   NA     NA
##  8 Destination  chr      92    2.2      4    NA   NA     NA
##  9 Age          fct       0    0       91    NA   NA     NA
## 10 VIP          fct       0    0        3    NA   NA     NA
## 11 RoomService  dbl      82    1.9    843     0  219. 11567
## 12 FoodCourt    dbl     106    2.5    903     0  439. 25273
## 13 ShoppingMall dbl      98    2.3    716     0  177.  8292
## 14 Spa          dbl     101    2.4    834     0  303. 19844
## 15 VRDeck       dbl      80    1.9    797     0  311. 22272
## 16 Name         chr      94    2.2   4177    NA   NA     NA
## 17 ailesıra     chr       0    0     3063    NA   NA     NA
## 18 ailenum      chr       0    0        8    NA   NA     NA
test$RoomService <- addNA(test$RoomService)
levels(test$RoomService)[is.na(levels(test$RoomService))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA   NA     NA
##  2 HomePlanet   fct       0    0        4    NA   NA     NA
##  3 CryoSleep    fct       0    0        3    NA   NA     NA
##  4 Cabin        chr     100    2.3   3266    NA   NA     NA
##  5 sutün1       chr     100    2.3      9    NA   NA     NA
##  6 sutün2       chr     100    2.3   1506    NA   NA     NA
##  7 sutün3       chr     100    2.3      3    NA   NA     NA
##  8 Destination  chr      92    2.2      4    NA   NA     NA
##  9 Age          fct       0    0       91    NA   NA     NA
## 10 VIP          fct       0    0        3    NA   NA     NA
## 11 RoomService  fct       0    0      843    NA   NA     NA
## 12 FoodCourt    dbl     106    2.5    903     0  439. 25273
## 13 ShoppingMall dbl      98    2.3    716     0  177.  8292
## 14 Spa          dbl     101    2.4    834     0  303. 19844
## 15 VRDeck       dbl      80    1.9    797     0  311. 22272
## 16 Name         chr      94    2.2   4177    NA   NA     NA
## 17 ailesıra     chr       0    0     3063    NA   NA     NA
## 18 ailenum      chr       0    0        8    NA   NA     NA
test$FoodCourt <- addNA(test$FoodCourt)
levels(test$FoodCourt)[is.na(levels(test$FoodCourt))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA   NA     NA
##  2 HomePlanet   fct       0    0        4    NA   NA     NA
##  3 CryoSleep    fct       0    0        3    NA   NA     NA
##  4 Cabin        chr     100    2.3   3266    NA   NA     NA
##  5 sutün1       chr     100    2.3      9    NA   NA     NA
##  6 sutün2       chr     100    2.3   1506    NA   NA     NA
##  7 sutün3       chr     100    2.3      3    NA   NA     NA
##  8 Destination  chr      92    2.2      4    NA   NA     NA
##  9 Age          fct       0    0       91    NA   NA     NA
## 10 VIP          fct       0    0        3    NA   NA     NA
## 11 RoomService  fct       0    0      843    NA   NA     NA
## 12 FoodCourt    fct       0    0      903    NA   NA     NA
## 13 ShoppingMall dbl      98    2.3    716     0  177.  8292
## 14 Spa          dbl     101    2.4    834     0  303. 19844
## 15 VRDeck       dbl      80    1.9    797     0  311. 22272
## 16 Name         chr      94    2.2   4177    NA   NA     NA
## 17 ailesıra     chr       0    0     3063    NA   NA     NA
## 18 ailenum      chr       0    0        8    NA   NA     NA
test$ShoppingMall <- addNA(test$ShoppingMall)
levels(test$ShoppingMall)[is.na(levels(test$ShoppingMall))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA   NA     NA
##  2 HomePlanet   fct       0    0        4    NA   NA     NA
##  3 CryoSleep    fct       0    0        3    NA   NA     NA
##  4 Cabin        chr     100    2.3   3266    NA   NA     NA
##  5 sutün1       chr     100    2.3      9    NA   NA     NA
##  6 sutün2       chr     100    2.3   1506    NA   NA     NA
##  7 sutün3       chr     100    2.3      3    NA   NA     NA
##  8 Destination  chr      92    2.2      4    NA   NA     NA
##  9 Age          fct       0    0       91    NA   NA     NA
## 10 VIP          fct       0    0        3    NA   NA     NA
## 11 RoomService  fct       0    0      843    NA   NA     NA
## 12 FoodCourt    fct       0    0      903    NA   NA     NA
## 13 ShoppingMall fct       0    0      716    NA   NA     NA
## 14 Spa          dbl     101    2.4    834     0  303. 19844
## 15 VRDeck       dbl      80    1.9    797     0  311. 22272
## 16 Name         chr      94    2.2   4177    NA   NA     NA
## 17 ailesıra     chr       0    0     3063    NA   NA     NA
## 18 ailenum      chr       0    0        8    NA   NA     NA
test$Spa <- addNA(test$Spa)
levels(test$Spa)[is.na(levels(test$Spa))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA   NA     NA
##  2 HomePlanet   fct       0    0        4    NA   NA     NA
##  3 CryoSleep    fct       0    0        3    NA   NA     NA
##  4 Cabin        chr     100    2.3   3266    NA   NA     NA
##  5 sutün1       chr     100    2.3      9    NA   NA     NA
##  6 sutün2       chr     100    2.3   1506    NA   NA     NA
##  7 sutün3       chr     100    2.3      3    NA   NA     NA
##  8 Destination  chr      92    2.2      4    NA   NA     NA
##  9 Age          fct       0    0       91    NA   NA     NA
## 10 VIP          fct       0    0        3    NA   NA     NA
## 11 RoomService  fct       0    0      843    NA   NA     NA
## 12 FoodCourt    fct       0    0      903    NA   NA     NA
## 13 ShoppingMall fct       0    0      716    NA   NA     NA
## 14 Spa          fct       0    0      834    NA   NA     NA
## 15 VRDeck       dbl      80    1.9    797     0  311. 22272
## 16 Name         chr      94    2.2   4177    NA   NA     NA
## 17 ailesıra     chr       0    0     3063    NA   NA     NA
## 18 ailenum      chr       0    0        8    NA   NA     NA
test$VRDeck <- addNA(test$VRDeck)
levels(test$VRDeck)[is.na(levels(test$VRDeck))] <- "NA"
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0    0     4277    NA    NA    NA
##  2 HomePlanet   fct       0    0        4    NA    NA    NA
##  3 CryoSleep    fct       0    0        3    NA    NA    NA
##  4 Cabin        chr     100    2.3   3266    NA    NA    NA
##  5 sutün1       chr     100    2.3      9    NA    NA    NA
##  6 sutün2       chr     100    2.3   1506    NA    NA    NA
##  7 sutün3       chr     100    2.3      3    NA    NA    NA
##  8 Destination  chr      92    2.2      4    NA    NA    NA
##  9 Age          fct       0    0       91    NA    NA    NA
## 10 VIP          fct       0    0        3    NA    NA    NA
## 11 RoomService  fct       0    0      843    NA    NA    NA
## 12 FoodCourt    fct       0    0      903    NA    NA    NA
## 13 ShoppingMall fct       0    0      716    NA    NA    NA
## 14 Spa          fct       0    0      834    NA    NA    NA
## 15 VRDeck       fct       0    0      797    NA    NA    NA
## 16 Name         chr      94    2.2   4177    NA    NA    NA
## 17 ailesıra     chr       0    0     3063    NA    NA    NA
## 18 ailenum      chr       0    0        8    NA    NA    NA
test <- test[complete.cases(test),]
test %>% describe_all()
## # A tibble: 18 × 8
##    variable     type     na na_pct unique   min  mean   max
##    <chr>        <chr> <int>  <dbl>  <int> <dbl> <dbl> <dbl>
##  1 PassengerId  chr       0      0   3992    NA    NA    NA
##  2 HomePlanet   fct       0      0      4    NA    NA    NA
##  3 CryoSleep    fct       0      0      3    NA    NA    NA
##  4 Cabin        chr       0      0   3146    NA    NA    NA
##  5 sutün1       chr       0      0      8    NA    NA    NA
##  6 sutün2       chr       0      0   1479    NA    NA    NA
##  7 sutün3       chr       0      0      2    NA    NA    NA
##  8 Destination  chr       0      0      3    NA    NA    NA
##  9 Age          fct       0      0     89    NA    NA    NA
## 10 VIP          fct       0      0      3    NA    NA    NA
## 11 RoomService  fct       0      0    804    NA    NA    NA
## 12 FoodCourt    fct       0      0    859    NA    NA    NA
## 13 ShoppingMall fct       0      0    679    NA    NA    NA
## 14 Spa          fct       0      0    794    NA    NA    NA
## 15 VRDeck       fct       0      0    760    NA    NA    NA
## 16 Name         chr       0      0   3986    NA    NA    NA
## 17 ailesıra     chr       0      0   2900    NA    NA    NA
## 18 ailenum      chr       0      0      8    NA    NA    NA
df <- data.frame(
  group_id = c(1, 1, 2, 3, 4),
  homeplanet = c("A", "NA", "B", "C", "A")
)
df <- df %>%
  group_by(group_id) %>%
  mutate(homeplanet = ifelse(homeplanet == "NA", first(homeplanet), homeplanet))

print(df)
## # A tibble: 5 × 2
## # Groups:   group_id [4]
##   group_id homeplanet
##      <dbl> <chr>     
## 1        1 A         
## 2        1 A         
## 3        2 B         
## 4        3 C         
## 5        4 A
library(VIM)
VIM::aggr(x=test, sotvars=T)