R में अलग सेट डेटा टाइप नहीं होता; इसके बजाय यह वेक्टर पर मिलते-जुलते काम करने के लिए कई तरह के फंक्शन इस्तेमाल करता है।
%in% ऑपरेटर जाँचता है कि कोई वैल्यू सेट में है या नहीं।
2 %in% 1:10 # TRUE
12 %in% 1:10 # FALSE
इससे जुड़े फंक्शनों में unique (डुप्लिकेट हटाने के लिए) और सेट के जोड़ों पर काम करने वाले union(), intersect(), setdiff() तथा setequal() शामिल हैं।
> set_1 <- c("a", "b", "c", "b", "a")
> unique(set_1) # deduplicate
[1] "a" "b" "c"
> set_2 <- c('a', "c", "d")
> union(set_1, set_2) # values in either set
[1] "a" "b" "c" "d"
> intersect(set_1, set_2) # values in both sets
[1] "a" "c"
> setdiff(set_1, set_2) # values in set_1 but not set_2
[1] "b"
> setdiff(set_2, set_1) # values in set_2 but not set_1
[1] "d"
setequal(set_1, c("c", "b", "a", "b")) # are elements the same after deduplication?
[1] TRUE
हर मामले में set_1 और set_2 में कोई बदलाव नहीं होता।
ओज़ान आने वाली एक सड़क यात्रा के लिए प्लेलिस्ट बना रहा है। वह एक ही ट्रैक को एक से ज़्यादा बार नहीं सुनना चाहता, लेकिन प्लेलिस्ट इतनी लंबी हो गई है कि उसे यह याद रखने में दिक्कत हो रही है कि कौन-कौन से ट्रैक पहले ही जोड़े जा चुके हैं।
ओज़ान के म्यूज़िक प्लेयर का API सिर्फ वेक्टर के साथ काम करना जानता है। इसमें सीधे लूप या if/else तर्क लिखना संभव नहीं है। उसे आपकी मदद चाहिए!
remove_duplicates फंक्शन बनाइए, जो एक प्लेलिस्ट को पैरामीटर के रूप में लेता है और एक नई प्लेलिस्ट लौटाता है जिसमें सभी ट्रैक अलग-अलग हों।
> playlist <- c(
"Court and Spark - Joni Mitchell",
"Big Yellow Taxi - Joni Mitchell",
"Court and Spark - Joni Mitchell"
)
> remove_duplicates(playlist)
[1] "Court and Spark - Joni Mitchell" "Big Yellow Taxi - Joni Mitchell"
has_track फंक्शन बनाइए, जो एक प्लेलिस्ट और एक ट्रैक को पैरामीटर के रूप में लेता है और एक बूलियन लौटाता है जो बताता है कि प्लेलिस्ट में वह ट्रैक मौजूद है या नहीं।
> playlist <- c(
"The Fashion Show - Grace Jones",
"Dr. Funkenstein - Parliament"
)
> has_track(playlist, "Dr. Funkenstein - Parliament")
[1] TRUE
> has_track(playlist, "Walking in the Rain - Grace Jones")
[1] FALSE
add_tracks फंक्शन बनाइए, जो एक प्लेलिस्ट और एक या अधिक ट्रैक के वेक्टर को पैरामीटर के रूप में लेता है और एक नई प्लेलिस्ट लौटाता है जिसमें वे ट्रैक भी शामिल हों।
> playlist <- c("Selma - Bijelo Dugme")
> playlist <- add_tracks(playlist, "Atomic Dog - George Clinton")
> playlist
[1] "Selma - Bijelo Dugme" "Atomic Dog - George Clinton"
> add_tracks(playlist, "Selma - Bijelo Dugme")
[1] "Selma - Bijelo Dugme" "Atomic Dog - George Clinton"
> add_tracks(playlist, c("The Chain - Fleetwood Mac", "Selma - Bijelo Dugme"))
[1] "Selma - Bijelo Dugme" "Atomic Dog - George Clinton" "The Chain - Fleetwood Mac"
delete_tracks फंक्शन बनाइए, जो एक प्लेलिस्ट और एक या अधिक ट्रैक को पैरामीटर के रूप में लेता है और एक नई प्लेलिस्ट लौटाता है जिसमें वे ट्रैक शामिल नहीं हों।
> playlist <- c(
"The Treasure - Fra Lippo Lippi",
"After the Fall - Klaus Nomi"
)
> playlist <- delete_tracks(playlist, "The Treasure - Fra Lippo Lippi")
> playlist
[1] "After the Fall - Klaus Nomi"
> delete_tracks(playlist, "I Feel the Magic - Belinda Carlisle")
[1] "After the Fall - Klaus Nomi"
ओज़ान की मुलाकात एक नए दोस्त से होती है और वह सोचता है कि दोनों की पसंद कितनी मिलती-जुलती है।
find_common_tracks फंक्शन बनाइए, जो दो प्लेलिस्ट लेता है और एक नई प्लेलिस्ट लौटाता है जिसमें सिर्फ वे ट्रैक हों जो दोनों में मौजूद हैं।
> playlist_1 <- c("Karma - Taylor Swift", "Tired - Adele")
> playlist_2 <- c("Andromeda - Weyes Blood", "Karma - Taylor Swift")
> find_common_tracks(playlist_1, playlist_2)
[1] "Karma - Taylor Swift"
Exercism पर साइन अप कीजिए और R को 21 कॉन्सेप्ट111 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।