본문 바로가기
Data Science/R

R프로그래밍 : 행렬(matrix)

by 엔딴 2021. 3. 9.
반응형

행렬

같은 자료형의 스칼라를 원소로 가지는 2차원 자료구조 (행row, 열column)

벡터와 같은 점 : 원소가 입력된 수서를 유지하며, 자료형이 다른 원소가 추가되면 강제변환이 발생한다. 

 

행렬은 2차원이므로 인덱싱을 할 때 대괄호 안에 콤마를 추가해야 한다.

  • 콤마 앞에 행 인덱스, 콤마 뒤에 컬럼 인덱스를 지정하는 숫자형 벡터를 입력한다.
  • 콤마 앞에 숫자형 벡터를 생략하면 행 전체를 선택한다.
  • 행렬에서 행 또는 컬럼을 하나만 선택하면 항상 벡터로 출력된다.

 

행렬 생성 함수 : matrix( )

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,  dimnames = NULL)

data : 벡터를 지정

nrow : 행 길이, data에 지정된 벡터 원소 개수의 약수를 지정

ncol : 열 길이, nrow에 숫자를 지정하면 생략 가능

byrow : 벡터 원소를 가로방향으로 입력하려면 TRUE를 지정 (기본값 : FALSE)

dimnames : 행이름과 컬럼명을 리스트의 원소로 지정

 

A <- matrix(data=1:12, nrow=3)

> class(x=A)
[1] "matrix" "array" 
> dim(x=A)
[1] 3 4

 

행렬의 인덱싱과 슬라이싱

A[1, 1]  #1행 1열을 정수형 벡터로 출력

A[1:2, 1:2]  #1~2행 1~2열을 행렬로 출력

A[1, ] #1행을 정수형 벡터로 출력

A[1:2, ] #1~2행을 행렬로 출력

A[c(1,3), ]  #1,3행을 행렬로 출력

A[ , 1]  #1열을 정수형 벡터로 출력

A[ , c(1,3)]  #1,3열을 행렬로 출력

 

행렬 원소의 추가

1) 컬럼 추가 : cbind( )

2) 행 추가 : rbind( )

 

행렬 원소의 삭제

인덱스 앞에 마이너스를 추가하면 해당 행 또는 컬럼을 삭제한 결과를 출력

A[-1, -1]

A[-1, ]

A[-c(1:2), ]

A[-c(1,3), ]

A[ , -1]

A[ , -c(1,3)]

 

행렬 원소의 변경

A[1, ] <- c(1, 2.1, 3.12, 4.123, 5.1234)

 

행렬은 열 기준으로 소수점 자리수가 결정됨

반응형