العد باستخدام table()
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 15 من 64.
table(x) تحسب عدد مرات ظهور كل قيمة. تُسمّى النتيجة باستخدام القيم، مرتبةً أبجديًا، لذا يكون عدد قيمة ما هو t[["value"]]:
votes <- c("tea", "coffee", "tea", "juice", "tea")
t <- table(votes)
print(t[["tea"]])
print(names(t))
print(as.vector(t))الناتج:
[1] 3
[1] "coffee" "juice" "tea"
[1] 1 1 3sort(t, decreasing = TRUE) يرتّب الأعداد من الأكبر إلى الأصغر. تعطي which.max(t) موضع أكبر عدد؛ وعندما تتساوى الأعداد، تختار القيمة الأولى، وهي القيمة الأولى أبجديًا:
votes <- c("tea", "coffee", "tea", "juice", "coffee")
t <- table(votes)
print(names(t)[which.max(t)])
print(max(t))الناتج:
[1] "coffee"
[1] 2القيمة التي لا تحدث مطلقًا لا تكون موجودة في الجدول على الإطلاق، لذا تحقّق باستخدام %in% names(t) قبل قراءتها:
t <- table(c("A", "B", "A"))
for (grade in c("A", "B", "C")) {
n <- if (grade %in% names(t)) t[[grade]] else 0
cat(grade, n, "\n")
}الناتج:
A 2
B 1
C 0 تقوم table() بعدّ الأعداد والقيم المنطقية أيضًا. ولعدّ قيمة واحدة، تكون sum(x == value) أقصر من إنشاء جدول:
rolls <- c(6, 2, 6, 6, 1)
print(sum(rolls == 6))
print(table(rolls > 3)[["TRUE"]])الناتج:
[1] 3
[1] 3التحدي
سهلأكمل vote_winner(votes). أعد الخيار الذي حصل على أكبر عدد من الأصوات متبوعًا بعدده، كما في tea (3 votes). عند تعادل الخيارات، أعد الخيار الذي يأتي أولًا أبجديًا.
يقرأ الكود المرفق الأصوات كسطر مفصولة بفواصل ويطبع القيمة المُعادة.
جرّب بنفسك
vote_winner <- function(votes) {
# اكتب الكود الخاص بك هنا
""
}
# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
cat(vote_winner(strsplit(input[1], ",")[[1]]), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهم3المجموعات والعدّ
القيم الفريدةعمليات المجموعاتاختبارات الانتماءالعد باستخدام table()مراجعة - ضيوف الفعاليةتدرّب بنفسك: مترجم R عبر الإنترنت