행렬 만들기
Coddy R 여정의 논리와 흐름 섹션에 포함된 레슨. 64개 중 17번째.
행렬은 행과 열로 배열된 벡터이며, 모든 값은 동일한 유형입니다. matrix(data, nrow = ...)는 기본적으로 열별로 행렬을 채웁니다:
m <- matrix(1:6, nrow = 2)
print(m)출력:
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6byrow = TRUE를 추가하면 행 단위로 채워지며, 이는 한 줄에 한 행씩 작성된 데이터와 일치합니다:
m <- matrix(1:6, nrow = 2, byrow = TRUE)
print(m)출력:
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6nrow 또는 ncol 중 하나를 지정하면 R이 데이터 길이에서 나머지 하나를 계산합니다.
dim(m)은 행과 열의 개수를 반환하며, nrow()와 ncol()은 각각 하나씩만 반환합니다. matrix(0, nrow = 2, ncol = 3)은 행렬을 채우기 위해 단일 값을 반복합니다:
m <- matrix(0, nrow = 2, ncol = 3)
print(dim(m))
print(nrow(m) * ncol(m))
print(length(m))출력:
[1] 2 3
[1] 6
[1] 6rbind()는 벡터를 행으로 쌓고 cbind()는 열로 쌓아, 별도의 벡터로부터 행렬을 생성합니다:
a <- c(1, 2, 3)
b <- c(4, 5, 6)
print(rbind(a, b))
print(dim(cbind(a, b)))출력:
[,1] [,2] [,3]
a 1 2 3
b 4 5 6
[1] 3 2챌린지
쉬움make_grid(values, n_cols)를 완성하세요. n_cols개의 열을 가지며 values를 행별로 담는 행렬을 반환하세요. 값의 개수는 항상 n_cols의 배수입니다.
제공된 코드는 쉼표로 구분된 한 줄에서 값들을 읽고, 다음 줄에서 n_cols를 읽습니다. 반환된 행렬의 각 행을 한 줄에 하나씩 출력한 다음, rows x columns로 크기를 출력합니다.
직접 해보기
make_grid <- function(values, n_cols) {
# 여기에 코드를 작성하세요
matrix(values)
}
# 제공된 입력/출력 코드: 그대로 유지하세요
input <- suppressWarnings(readLines(file("stdin")))
values <- as.numeric(strsplit(input[1], ",")[[1]])
m <- make_grid(values, as.numeric(input[2]))
for (i in seq_len(nrow(m))) cat(m[i, ], "\n")
cat(nrow(m), "x", ncol(m), "\n")
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 R 컴파일러