القيم الفريدة
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 12 من 64.
لا يحتوي R على نوع منفصل للمجموعات: المجموعة هي متجه لا يحتوي على قيم مكررة. تعمل unique() على إزالة التكرارات والاحتفاظ بأول ظهور لكل قيمة، بالترتيب الأصلي.
tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))الناتج:
[1] "r" "stats" "data"
[1] 3تُرجع duplicated() القيمة TRUE لكل قيمة ظهرت مسبقًا في المتجه. ويكون الظهور الأول FALSE:
ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])الناتج:
[1] FALSE FALSE TRUE FALSE TRUE
[1] 7 3تقارن كلتا الدالتين القيم بدقة، لذا فإن "R" و"r" مختلفتان. طبّع النص أولًا عندما لا يكون لحالة الأحرف أهمية:
langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))الناتج:
[1] 4
[1] "r" "python"تعمل unique() مع الأرقام أيضًا، وتعرض sort(unique(x)) القيم المميّزة بترتيب تصاعدي. وتحسب sum(duplicated(x)) عدد العناصر المكرّرة:
rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))الناتج:
[1] 2 4 6
[1] 3التحدي
سهلأكمل count_distinct(tags). أرجِع عدد العلامات المختلفة عند تجاهل حالة الأحرف: تُحتسب R وr مرة واحدة.
يقرأ الكود المُقدَّم العلامات كسطر مفصولة بفواصل ويطبع العدد المُعاد.
جرّب بنفسك
count_distinct <- function(tags) {
# اكتب الكود الخاص بك هنا
0
}
# كود الإدخال/الإخراج المُزوَّد: أبقه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(strsplit(input[1], ",")[[1]]), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهم3المجموعات والعدّ
القيم الفريدةعمليات المجموعاتاختبارات الانتماءالعد باستخدام table()مراجعة - ضيوف الفعاليةتدرّب بنفسك: مترجم R عبر الإنترنت