فهرسة المصفوفات
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 18 من 64.
m[i, j] هي القيمة الموجودة في الصف i والعمود j. اترك أحد الجانبين فارغًا لاختيار صف أو عمود كامل: m[i, ] هو الصف i وm[, j] هو العمود j.
m <- matrix(1:6, nrow = 2, byrow = TRUE)
print(m[2, 3])
print(m[1, ])
print(m[, 2])الناتج:
[1] 6
[1] 1 2 3
[1] 2 5تعمل الفهارس نفسها على يسار <-، لذا يمكن استبدال خلية أو صف أو عمود:
m <- matrix(0, nrow = 2, ncol = 3)
m[1, 2] <- 5
m[2, ] <- c(7, 8, 9)
print(m)الناتج:
[,1] [,2] [,3]
[1,] 0 5 0
[2,] 7 8 9يمكن أن تكون للصفوف والأعمدة أسماء، ويتم تعيينها باستخدام rownames() وcolnames(). بعد ذلك يعمل الاسم كفهرس:
sales <- matrix(c(3, 5, 2, 8), nrow = 2, byrow = TRUE)
rownames(sales) <- c("north", "south")
colnames(sales) <- c("jan", "feb")
print(sales["south", "feb"])
print(sales[, "jan"])الناتج:
[1] 8
north south
3 2 تحدد متجهات الفهارس كتلةً من الصفوف والأعمدة دفعةً واحدة:
m <- matrix(1:9, nrow = 3, byrow = TRUE)
print(m[1:2, 2:3])
print(m[c(1, 3), 1])المخرجات:
[,1] [,2]
[1,] 2 3
[2,] 5 6
[1] 1 7التحدي
سهلأكمل cell_report(m, r, c). أعد ثلاثة أسطر: Cell: مع القيمة الموجودة في الصف r والعمود c، وRow: مع قيم الصف r، وColumn: مع قيم العمود c. افصل بين القيم بمسافات مفردة.
يقرأ الكود المُ provided مصفوفة من سطر واحد: تُفصل الصفوف باستخدام ;، وتُفصل قيم الصف باستخدام ,، لذا فإن 1,2;3,4 هي مصفوفة تحتوي على الصفين 1 2 و3 4. يحتوي السطران التاليان على r وc. يطبع الكود كل سطر مُعاد.
جرّب بنفسك
cell_report <- function(m, r, c) {
# اكتب الكود الخاص بك هنا
c("Cell: ", "Row: ", "Column: ")
}
# كود الإدخال/الإخراج المُزوَّد: اتركه كما هو
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(cell_report(parse_matrix(input[1]), as.numeric(input[2]), as.numeric(input[3])), sep = "\n")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت