Začněte nyníZačněte zdarma

Spojení pomocí vzdálenosti řetězců

Propojování dvou různých datových zdrojů je v analýze dat velmi běžný úkol. Kdykoli je to možné, měl bys ke spojení tabulek používat jednoznačně identifikovatelné hodnoty, jako je třeba e-mailová adresa. Ale co když uživatel zadal jen své jméno a ty ho musíš dohledat v databázi? Potíž je v tom, že lidé mohou jméno zkrátit, přepsat nebo vynechat jeho část.

V prostředí máš k dispozici dva datové rámce: user_input a database. První obsahuje chybně zadané vstupy od uživatelů, druhý správná jména – oba zdroje přitom obsahují stejných 100 jmen. Kolik z nich se podaří spojit pomocí vzdálenosti řetězců? Mimochodem: metoda method není zadána, takže se použije výchozí metoda Optimal String Alignment "osa".

Toto cvičení je součástí kurzu

Intermediate Regular Expressions in R

Zobrazit kurz

Pokyny k cvičení

  • Spoj user_input a database s maximální vzdáleností řetězců max_dist tak, aby bylo úspěšně spárováno přesně osmdesát jmen. Experimentuj, dokud nenajdeš správnou maximální vzdálenost.
  • Pomocí nově vytvořené tabulky joined vypiš přehlednou zprávu ve srozumitelné podobě.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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(___)
))
Upravit a spustit kód