Bagaimana cara mengganti na dengan median di r


Anda dapat menggunakan metode berikut untuk mengganti nilai NA dengan median menggunakan fungsi dari paket dplyr dan Tidyr di R:

Metode 1: Ganti nilai NA dengan median dalam kolom

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

Metode 2: Ganti nilai NA dengan median di beberapa kolom

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

Metode 3: Ganti nilai NA dengan median di semua kolom numerik

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

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan kerangka data berikut:

 #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

Contoh 1: Ganti nilai NA dengan median pada kolom

Kode berikut menunjukkan cara mengganti nilai NA pada kolom poin dengan nilai median kolom poin :

 library (dplyr)
library (tidyr)

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

#view updated data frame
df

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

Nilai median pada kolom poin adalah 15, sehingga nilai NA pada kolom poin diganti dengan 15.

Semua kolom lainnya tetap tidak berubah.

Contoh 2: Ganti nilai NA dengan median di beberapa kolom

Kode berikut menunjukkan cara mengganti nilai NA pada kolom titik dan blok dengan median kolomnya masing-masing:

 library (dplyr)
library (tidyr)

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

#view updated data frame
df

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

Perhatikan bahwa nilai NA pada kolom titik dan blok sama-sama telah diganti dengan median kolomnya masing-masing.

Contoh 3: Ganti nilai NA dengan median di semua kolom numerik

Kode berikut menunjukkan cara mengganti nilai NA pada setiap kolom numerik dengan nilai mediannya masing-masing:

 library (dplyr)
library (tidyr)

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

#view updated data frame
df

  player points rebounds blocks
1 to 17 3 1.0
2 B 13 4 1.0
3 C 15 4 2.0
4 D 9 4 4.0
5 E 25 8 1.5

Perhatikan bahwa nilai NA di semua kolom numerik telah digantikan oleh median kolomnya masing-masing.

Satu-satunya kolom yang bukan numerik (pemain) tetap tidak berubah.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di dplyr:

Cara memfilter baris yang berisi string tertentu menggunakan dplyr
Cara menghapus baris menggunakan dplyr
Cara menggunakan fungsicross() di dplyr

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *