Ringkasan Baris dan Kolom
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 19 dari 64.
rowSums() dan rowMeans() mengembalikan satu hasil untuk setiap baris; colSums() dan colMeans() mengembalikan satu hasil untuk setiap kolom. Di sini, setiap baris adalah seorang siswa dan setiap kolom adalah sebuah tes:
scores <- matrix(c(80, 90, 70, 60, 75, 85), nrow = 2, byrow = TRUE)
print(rowMeans(scores))
print(colSums(scores))Output:
[1] 80.00000 73.33333
[1] 140 165 155Untuk ringkasan lainnya, apply(m, 1, f) memanggil f pada setiap baris dan apply(m, 2, f) pada setiap kolom:
scores <- matrix(c(80, 90, 70, 60, 75, 85), nrow = 2, byrow = TRUE)
print(apply(scores, 1, max))
print(apply(scores, 2, min))Output:
[1] 90 85
[1] 60 75 70Gabungkan ringkasan dengan which.max() untuk menemukan baris atau kolom yang nilainya paling tinggi:
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))Output:
[1] 2
[1] 80.0 73.3apply() juga menerima fungsi yang kamu tulis langsung dengan function(r). Di sini, fungsi ini menghitung nilai yang lebih besar dari 5 di setiap baris:
m <- matrix(c(3, 8, 1, 9, 2, 7), nrow = 2, byrow = TRUE)
print(apply(m, 1, function(r) sum(r > 5)))Output:
[1] 1 2Tantangan
MudahLengkapi class_report(scores). Setiap baris scores mewakili seorang siswa dan setiap kolom mewakili sebuah tes. Kembalikan satu baris untuk setiap siswa, Student 1: 81.7, dengan nilai rata-rata siswa dibulatkan hingga satu angka desimal. Tambahkan satu baris terakhir Best test: diikuti nomor kolom dengan nilai rata-rata tertinggi.
Kode yang disediakan membaca matriks dari satu baris: baris dipisahkan dengan ; dan nilai dalam satu baris dipisahkan dengan ,, jadi 1,2;3,4 adalah matriks dengan baris 1 2 dan 3 4. Kode tersebut mencetak setiap baris yang dikembalikan.
Coba sendiri
class_report <- function(scores) {
# Tulis kodemu di sini
character(0)
}
# Kode input/output yang disediakan: biarkan apa adanya
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")
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online