/*
* http://sosal.kr/
* made by so_Sal
*/
1. Matrix 선언하기
matrix( data, nrow, ncol, byrow = FALSE)
data: 행렬에 들어가는 데이터
nrow: row(행)의 수
ncol: column(열)의 수
byrow: 기본적으로 열(column)을 기준으로 숫자가 들어감 (FALSE)
TRUE로 지정할 시 행(row) 기준으로 숫자가 들어간다.
> mat = matrix(1:20, nrow=5, ncol=4)
> mat
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
>
행열 요소 추출, 치환
> mat[1,1]
[1] 1
> mat[, 2] # 빈칸이면 해당 인덱스의 모든인자 추출
[1] 6 7 8 9 10
>
> mat[ c(3,4), ] # 벡터를 이용하여 여러 데이터 동시 추출 가능
[,1] [,2] [,3] [,4]
[1,] 3 8 13 18
[2,] 4 9 14 19
>
> mat [1,1] = 99 # Matrix의 치환
> mat
[,1] [,2] [,3] [,4]
[1,] 99 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
>
> mat[5,] <- c(55,66,77,88) # 벡터를 이용하여 치환
> mat
[,1] [,2] [,3] [,4]
[1,] 99 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 55 66 77 88
>
> sum(mat) # 메트릭스에 함수 적용 가능
[1] 544
apply(X, MARGIN, FUN, ...)
Returns a vector or array or list of values obtained by applying a function to margins of an array or matrix.
apply함수: row/column 단위의 연산을 쉽고 간결하게 하게 해준다.
X: matrix
margin: 1 (row), 2(column)
apply(mat,1, sum) # mat matrix의 row별 합 구하기
apply(mat, 2, sd) # mat matrix의 column별 표준편차 구하기
> mat = matrix(1:20, ncol=4, nrow=5)
> mat
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
>
> apply(mat, 1, sum)
[1] 34 38 42 46 50
> apply(mat, 2, sd)
[1] 1.581139 1.581139 1.581139 1.581139
>
operator |
설명 |
A + B |
행렬 A와 B의 합 |
A * B |
행렬 A,B의 element의 곱. (행렬곱연산이 아니다) |
A %*% B |
행렬 A와 B의 곱연산 |
A / B |
행렬 A, B의 element 나눗셈 |
det(A) |
A의 determinant |
solve(A) |
A의 역행렬 |
eigen(A) |
A의 eigenvalue와 eigenvector (고유값, 고유벡터) |
t(A) |
A의 transposition |
Matrix에 row/colum 추가하기
colum에 추가하기
> mat = matrix(1:20, ncol=4, nrow=5)
'Programing > R- programming' 카테고리의 다른 글
R프로그래밍 범주형 변수 factor (categorical variable) (0) | 2014.08.21 |
---|---|
벡터 및 행렬의 row/column에 이름 붙이기 (0) | 2014.08.21 |
R프로그래밍에서 Vector 다루기 (0) | 2014.08.21 |
R로 구현한 피보나치 수열 (0) | 2014.08.21 |
Gene filtering from gene expression data in R (0) | 2014.01.11 |