Cara menggunakan fungsi coalesce() di dplyr (dengan contoh)
Anda dapat menggunakan fungsi coalesce() dari paket dplyr di R untuk mengembalikan nilai pertama yang tidak hilang di setiap posisi dari satu atau lebih vektor.
Ada dua cara umum untuk menggunakan fungsi ini:
Metode 1: Ganti nilai yang hilang dalam vektor
library (dplyr)
#replace missing values with 100
coalescence(x, 100)
Metode 2: Kembalikan nilai pertama yang tidak hilang di kolom bingkai data
library (dplyr)
#return first non-missing value at each position across columns A and B
coalesce(df$A, df$B)
Contoh berikut menunjukkan bagaimana menerapkan setiap metode dalam praktik.
Contoh 1: Gunakan coalesce() untuk mengganti nilai yang hilang pada vektor
Kode berikut menunjukkan cara menggunakan fungsi coalesce() untuk mengganti semua nilai yang hilang dalam vektor dengan nilai 100:
library (dplyr) #create vector of values x <- c(4, NA, 12, NA, 5, 14, 19) #replace missing values with 100 coalescence(x, 100) [1] 4 100 12 100 5 14 19
Perhatikan bahwa setiap nilai NA pada vektor asli telah diganti dengan nilai 100 .
Contoh 2: Gunakan coalesce() untuk mengembalikan nilai pertama yang tidak hilang di kolom bingkai data
Misalkan kita memiliki bingkai data berikut di R:
#create data frame
df <- data. frame (A=c(10, NA, 5, 6, NA, 7, NA),
B=c(14, 9, NA, 3, NA, 10, 4))
#view data frame
df
AB
1 10 14
2 NA 9
3 5 NA
4 6 3
5 NA NA
6 7 10
7 NA 4
Kode berikut menunjukkan cara menggunakan fungsi coalesce() untuk mengembalikan nilai pertama yang tidak hilang di kolom A dan B bingkai data:
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA NA
6 7 10 7
7 NA 4 4
Kolom C yang dihasilkan berisi nilai pertama yang tidak hilang di kolom A dan B.
Perhatikan bahwa baris 5 memiliki nilai NA di kolom C karena kolom A dan B sama-sama memiliki nilai NA di baris ini.
Kita cukup menambahkan nilai ekstra ke fungsi coalesce() untuk digunakan sebagai nilai jika ada nilai NA di setiap kolom:
library (dplyr)
#create new column that coalesces values from columns A and B
df$C <- coalesce(df$A, df$B, 100)
#view updated data frame
df
ABC
1 10 14 10
2 NA 9 9
3 5 NA 5
4 6 3 6
5 NA NA 100
6 7 10 7
7 NA 4 4
Perhatikan bahwa nilai NA pada baris 5 kolom C kini telah diganti dengan nilai 100 .
Sumber daya tambahan
Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya menggunakan dplyr:
Cara menghapus baris menggunakan dplyr
Cara menyusun baris menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr