Melakukan join berdasarkan jarak string
Menggabungkan dua sumber data yang berbeda adalah tugas yang sangat umum dalam analisis data. Jika memungkinkan, Anda sebaiknya menggunakan nilai yang mudah diidentifikasi seperti alamat email untuk melakukan join dua tabel. Namun bagaimana jika pengguna hanya memasukkan nama mereka dan Anda harus mencarinya di basis data pengguna? Tantangannya: Orang mungkin menyingkat nama depan atau belakang, salah ketik, atau bahkan menghilangkan sebagian.
Dalam ruang lingkup ini terdapat dua data frame: user_input dan database. Yang pertama berisi masukan pengguna yang bermasalah dan yang kedua berisi nama yang benar, tetapi kedua sumber data tersebut memuat 100 nama yang sama. Berapa banyak yang dapat Anda cocokan dengan join jarak string? Omong-omong: Tidak ada method jarak yang didefinisikan, sehingga default, Optimal String Alignment distance "osa" akan digunakan.
Latihan ini adalah bagian dari kursus
Ekspresi Reguler Tingkat Menengah di R
Petunjuk latihan
- Lakukan join antara
user_inputdandatabasedengan jarak string maksimummax_distsehingga tepat delapan puluh nama berhasil dicocokkan. Bereksperimenlah hingga Anda menemukan jarak maksimum yang tepat. - Gunakan tabel baru
joineduntuk mencetak kalimat laporan yang mudah dibaca manusia.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Join the data frames on a maximum string distance of 2
joined <- stringdist_join(
user_input,
database,
by = c("user_input" = "name"),
___ = ___,
distance_col = "distance",
ignore_case = TRUE
)
# Print the number of rows of the newly created data frame
print(glue(
"{n} out of 100 names were matched successfully",
n = nrow(___)
))