Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملخصات الصفوف والأعمدة

جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 19 من 64.

rowSums() وrowMeans() يعيدان نتيجة واحدة لكل صف؛ وcolSums() وcolMeans() نتيجة واحدة لكل عمود. هنا يمثّل كل صف طالبًا ويمثّل كل عمود اختبارًا:

scores <- matrix(c(80, 90, 70, 60, 75, 85), nrow = 2, byrow = TRUE)
print(rowMeans(scores))
print(colSums(scores))

الناتج:

[1] 80.00000 73.33333
[1] 140 165 155

بالنسبة إلى أي ملخص آخر، تستدعي apply(m, 1, f) الدالة f لكل صف، وتستدعي apply(m, 2, f) الدالة f لكل عمود:

scores <- matrix(c(80, 90, 70, 60, 75, 85), nrow = 2, byrow = TRUE)
print(apply(scores, 1, max))
print(apply(scores, 2, min))

الناتج:

[1] 90 85
[1] 60 75 70

اجمع ملخصًا مع which.max() للعثور على الصف أو العمود الفائز:

scores <- matrix(c(80, 90, 70, 60, 75, 85), nrow = 2, byrow = TRUE)
best_test <- which.max(colMeans(scores))
print(best_test)
print(round(rowMeans(scores), 1))

الناتج:

[1] 2
[1] 80.0 73.3

تقبل apply() أيضًا دالة تكتبها مباشرةً باستخدام function(r). وهنا تحسب عدد القيم الأكبر من 5 في كل صف:

m <- matrix(c(3, 8, 1, 9, 2, 7), nrow = 2, byrow = TRUE)
print(apply(m, 1, function(r) sum(r > 5)))

الناتج:

[1] 1 2
challenge icon

التحدي

سهل

أكمل class_report(scores). كل صف من scores يمثل طالبًا وكل عمود اختبارًا. أعد سطرًا واحدًا لكل طالب، مثل Student 1: 81.7، بحيث يكون متوسط الطالب مقربًا إلى منزلة عشرية واحدة. أضف سطرًا أخيرًا Best test: متبوعًا برقم العمود ذي أعلى متوسط.

يقرأ الكود المُ provided مصفوفة من سطر واحد: تُفصل الصفوف باستخدام ; وتُفصل قيم الصف باستخدام ,، لذا فإن 1,2;3,4 هي مصفوفة تحتوي على الصفين 1 2 و3 4. يطبع الكود كل سطر مُعاد.

جرّب بنفسك

class_report <- function(scores) {
  # اكتب الكود الخاص بك هنا
  character(0)
}

# كود الإدخال/الإخراج المُزوَّد: أبقِه كما هو
input <- suppressWarnings(readLines(file("stdin")))
parse_matrix <- function(line) {
  rows <- strsplit(line, ";")[[1]]
  matrix(as.numeric(unlist(strsplit(rows, ","))), nrow = length(rows), byrow = TRUE)
}
cat(class_report(parse_matrix(input[1])), sep = "\n")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم R عبر الإنترنت