MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Lakukan join antara user_input dan database dengan jarak string maksimum max_dist sehingga tepat delapan puluh nama berhasil dicocokkan. Bereksperimenlah hingga Anda menemukan jarak maksimum yang tepat.
  • Gunakan tabel baru joined untuk 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(___)
))
Edit dan Jalankan Kode