Dplyr'de na'yı ortalama ile nasıl değiştirebilirim?


R’deki dplyr ve Tidyr paketlerindeki işlevleri kullanarak NA değerlerini ortalamayla değiştirmek için aşağıdaki yöntemleri kullanabilirsiniz:

Yöntem 1: NA değerlerini bir sütundaki ortalamayla değiştirin

 df %>% mutate(across(col1, ~replace_na(., mean(., na. rm = TRUE ))))

Yöntem 2: NA değerlerini birden çok sütundaki ortalama değerle değiştirin

 df %>% mutate(across(c(col1, col2), ~replace_na(., mean(., na. rm = TRUE ))))

Yöntem 3: NA değerlerini tüm sayısal sütunlarda ortalamayla değiştirin

 df %>% mutate(across(where(is. numeric ), ~replace_na(., mean(., na. rm = TRUE ))))

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki veri çerçevesiyle nasıl kullanılacağını gösterir:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E'),
                 points=c(17, 13, NA, 9, 25),
                 rebounds=c(3, 4, NA, NA, 8),
                 blocks=c(1, 1, 2, 4, NA))

#view data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C NA NA 2
4 D 9 NA 4
5 E 25 8 NA

Örnek 1: NA değerlerini bir sütundaki ortalamayla değiştirin

Aşağıdaki kod, puan sütunundaki NA değerlerinin puan sütunundaki ortalama değerle nasıl değiştirileceğini gösterir:

 library (dplyr)
library (tidyr)

#replace NA values in points column with mean of points column
df <- df %>% mutate(across(points, ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 NA 2
4 D 9 NA 4
5 E 25 8 NA

Puan sütunundaki ortalama değer 16 olduğundan puan sütunundaki NA değeri 16 ile değiştirildi.

Diğer tüm sütunlar değişmeden kaldı.

Örnek 2: NA değerlerini birden fazla sütundaki ortalama değerle değiştirin

Aşağıdaki kod, nokta ve blok sütunlarındaki NA değerlerinin ilgili sütun ortalamalarıyla nasıl değiştirileceğini gösterir:

 library (dplyr)
library (tidyr)

#replace NA values in points and blocks columns with their respective means
df <- df %>% mutate(across(c(points, blocks), ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 NA 2
4 D 9 NA 4
5 E 25 8 2

Nokta ve blok sütunlarındaki NA değerlerinin her ikisinin de ilgili sütun ortalamalarıyla değiştirildiğine dikkat edin.

Örnek 3: Tüm sayısal sütunlarda NA değerlerini ortalamayla değiştirin

Aşağıdaki kod, her sayısal sütundaki NA değerlerinin ilgili ortalama değerle nasıl değiştirileceğini gösterir:

 library (dplyr)
library (tidyr)

#replace NA values in all numeric columns with their respective means
df <- df %>% mutate(across(where(is. numeric ), ~replace_na(., mean(., na. rm = TRUE ))))

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1
2 B 13 4 1
3 C 16 5 2
4 D 9 5 4
5 E 25 8 2

Tüm sayısal sütunlardaki NA değerlerinin, ilgili sütun ortalamalarıyla değiştirildiğini unutmayın.

Sayısal olmayan tek sütun (oyuncu) değişmeden kaldı.

Ek kaynaklar

Aşağıdaki eğitimlerde dplyr’de diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Belirli bir dizeyi içeren satırları dplyr kullanarak nasıl filtreleyebilirim?
Dplyr kullanılarak göreceli frekanslar nasıl hesaplanır?
Dplyr kullanarak gruba göre ilk satır nasıl seçilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir