Menu
Coddy logo textTech

Satır ve Sütun Özetleri

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 19 / 64.

rowSums() ve rowMeans() satır başına bir sonuç döndürür; colSums() ve colMeans() ise sütun başına bir sonuç döndürür. Burada her satır bir öğrenciyi, her sütun ise bir testi temsil eder:

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

Çıktı:

[1] 80.00000 73.33333
[1] 140 165 155

Diğer herhangi bir özet için apply(m, 1, f) her satırda f işlevini, apply(m, 2, f) ise her sütunda çağırır:

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

Çıktı:

[1] 90 85
[1] 60 75 70

Hangi satırın veya sütunun kazandığını bulmak için bir özeti which.max() ile birleştirin:

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))

Çıktı:

[1] 2
[1] 80.0 73.3

apply(), function(r) ile anında yazdığınız bir işlevi de kabul eder. Burada her satırdaki 5’ten büyük değerleri sayar:

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

Çıktı:

[1] 1 2
challenge icon

Görev

Kolay

class_report(scores) işlevini tamamla. scores içindeki her satır bir öğrenciyi, her sütun bir testi temsil eder. Öğrenci başına bir satır olacak şekilde, öğrencinin ortalaması bir ondalık basamağa yuvarlanmış olarak Student 1: 81.7 biçiminde sonuç döndür. Son satıra, ardından ortalaması en yüksek olan sütunun numarası gelecek şekilde Best test: ekle.

Sağlanan kod, tek bir satırdan bir matris okur: satırlar ; ile, bir satırdaki değerler ise , ile ayrılır; dolayısıyla 1,2;3,4, satırları 1 2 ve 3 4 olan bir matristir. Kod, döndürülen her satırı yazdırır.

Kendin dene

class_report <- function(scores) {
  # Kodunuzu buraya yazın
  character(0)
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi