행과 열 요약
Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 19번째.
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.3apply()는 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챌린지
쉬움class_report(scores)를 완성하세요. scores의 각 행은 학생을, 각 열은 시험을 나타냅니다. 학생별로 한 줄씩 Student 1: 81.7과 같은 형식으로 반환하며, 학생의 평균은 소수 첫째 자리까지 반올림합니다. 마지막 줄에는 Best test: 뒤에 평균이 가장 높은 열의 번호를 추가하세요.
제공된 코드는 한 줄에서 행렬을 읽습니다. 행은 ;로 구분되고 행의 값은 ,로 구분되므로, 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")
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러