1) 왼쪽에서 오른쪽으로, 그리고 위에서 아래로 인덱싱된다.
2) (nrow) 는 행의 갯수를 특정하고, (ncol) 은 열의 갯수를 특정한다.
3) 입력된 값의 수(예제에서는 9개)보다 많은 원소(예제에서는 10개)를 가지는 행렬을 만들려고 하면, 아래와 같은 경고 메시지를 출력한다.
data length [9] is not a sub-multiple or multiple of the number of rows [2]
모자라는 1칸에는 첫번째 값이 1이 삽입된다. 행렬이 채워질 때까지 반복적으로 값이 들어가게 된다.
앞에서도 보았듯이 결과값 앞에 [1] 이 출력되는 것을 보아왔다. [1] 은 행렬의 한 열 또는 한 행과 동등이다. 위 그림의 첫번째 예는 1+1 에 대한 답인 2 라는 한 개의 원소를 가진 벡터이고, 두 번째 예 vector1 은 9개의 원소로 이루어진 벡터이다. 9개의 원소를 가진 두 번째 예의 벡터는 1개의 행과 9개의 열을 가진 행렬과 대략 비슷하다.
4) 행렬간의 연산
matrix1 이 다음과 같다고 하자.
> matrix1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
(1) 행렬에 값을 더하는 경우에는 각각의 위치의 원소에 해당 값을 더한다.
> matrix1+2
[,1] [,2] [,3]
[1,] 3 6 9
[2,] 4 7 10
[3,] 5 8 11
* 두 행렬의 곱에 대해서는 다음 포스팅 참조
http://www.jpalace.net/admin/entry/post/?id=398
(2) 두 행렬을 더하는 경우
이 경우 동일한 차원(같은 수의 행과 열을 가졌다는 의미)의 행렬만 더할 수 있다
> matrix1+matrix1
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18
(3) 두 행렬을 곱하는 경우
행렬의 곱셈은 다음 "%*%" 를 이용한다.
(행렬의 원소간 곱과의 차이에 유의)
행렬의 곱셉(product of row and column operations)
> matrix1%*%matrix1
[,1] [,2] [,3]
[1,] 30 66 102
[2,] 36 81 126
[3,] 42 96 150
행렬의 원소간 곱(element-by-element multiplication)
> matrix1*matrix1
[,1] [,2] [,3]
[1,] 1 16 49
[2,] 4 25 64
[3,] 9 36 81
5) 행렬의 전치(transpose of a matrix)
행과 열을 스위칭하는 것
'프로그래밍 Programming' 카테고리의 다른 글
R 프로그래밍 - Data Types (numeric, integer, character) (0) | 2014.08.02 |
---|---|
R 프로그래밍 - Manipulation (0) | 2014.07.16 |
R 프로그래밍 - 벡터(Vector) (0) | 2014.07.11 |
R 프로그램의 역사, 다운로드 및 설치, 대수(algebra) (0) | 2014.07.11 |
/*+ bypass_ujvc */ 를 이용한 오라클 다중행 업데이트 쿼리 (0) | 2014.03.22 |