String distance join करना
डेटा विश्लेषण में दो अलग‑अलग डेटा सोर्स को साथ लाना बहुत आम काम है. जहाँ संभव हो, आपको दो टेबल्स को जोड़ने के लिए ईमेल पते जैसे स्पष्ट रूप से पहचाने जा सकने वाले मानों का उपयोग करना चाहिए. लेकिन अगर किसी यूज़र ने केवल अपना नाम डाला हो और आपको उसे यूज़र डेटाबेस में ढूँढना पड़े, तो क्या करेंगे? मुश्किल यह है: लोग अपना पहला या अंतिम नाम संक्षेप में लिख सकते हैं, टाइपो कर सकते हैं, या कुछ हिस्से छोड़ भी सकते हैं.
स्कोप में दो डेटा फ्रेम हैं: user_input और database. पहले में उपयोगकर्ता का त्रुटिपूर्ण इनपुट है और दूसरे में सही नाम, लेकिन दोनों डेटा सोर्स में वही 100 नाम मौजूद हैं. आप उनमें से कितनों को string distance join से मिलान कर सकते हैं? वैसे: कोई distance method परिभाषित नहीं है, इसलिए डिफ़ॉल्ट Optimal String Alignment distance "osa" उपयोग होगी.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में Intermediate Regular Expressions
अभ्यास निर्देश
user_inputऔरdatabaseको अधिकतम string distancemax_distके साथ join करें ताकि ठीक अस्सी नाम सफलतापूर्वक मैच हों. सही अधिकतम दूरी पाने तक प्रयोग करते रहें.- नई बनी टेबल
joinedका उपयोग करके एक मानव‑अनुकूल रिपोर्ट वाक्य प्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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(___)
))