[사용 함수]

함수명

설명

matrix()

행렬 데이터 만들기

dim()

행렬의 차원 반환 또는 지정(, 열 순으로)

cbind()

열 추가

rbind()

행 추가

colnames()

열 이름 지정

rownames()

행 이름 지정

length()

데이터 개수 반환

NROW()

행 수 반환 (벡터도 1column matrix로 인식)

NCOL()

열 수 반환 (벡터도 1column matrix로 인식)

nrow()

행 수 반환 (벡터에서는 NULL)

ncol()

열 수 반환 (벡터에서는 NULL)


[행렬]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
> # matrix
> # 여러개의 동일한 형태의 데이터를 모아서 행과열의 형태로 함께 저장
> mat1 <- matrix(c(1,2,3,4)) ; mat1  #기본적으로 열이 우선
     [,1]
[1,]    1
[2,]    2
[3,]    3
[4,]    4
> mat2 <- matrix(c(1,2,3,4),nrow=2) ; mat2 #행 개수 2개 지정.
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> mat2 <- matrix(1:4,ncol=2); mat2 # 열 개수 2개 지정
     [,1] [,2]
[1,]    1    3
[2,]    2    4
> mat3 <- matrix(c(1,2,3,4),nrow=2,byrow=T) ; mat3 # 행 우선
     [,1] [,2]
[1,]    1    2
[2,]    3    4
> mat4 <- matrix(c(1:9),nrow=4,byrow=T) ; mat4
Warning message:
In matrix(c(1:9), nrow = 4, byrow = T) :
  data length [9is not a sub-multiple or multiple of the number of rows [4]
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
[4,]    1    2    3
cs


[행렬 데이터 제어]

1
2
3
4
5
6
7
8
9
10
11
12
13
> # 행렬 데이터 제어
> mat3[ ,1]  # 모든 행의 1 열 값을 벡터 형태로 가져옴
[11 3
> mat3[1,]   # 1행의 모든 열 값을 벡터 형태로 가져옴
[11 2
> mat3[1,1] # 1행 1열의 값을 출력
[11
> mat3[c(1,1)] # mat3[1]을 두 개 출력
[11 1
> mat4[c(2,4),c(1,3)] # 2,4행과 1,3열이 만나는 행렬 
     [,1] [,2]
[1,]    4    6
[2,]    1    3
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
> # dim() 함수
> dim(mat3)  # 행렬의 차원 반환 (행,열 순으로) 
[12 2
> 
> #순환 재활용
> mat7<-matrix(7,nrow=3,ncol=4); mat7
     [,1] [,2] [,3] [,4]
[1,]    7    7    7    7
[2,]    7    7    7    7
[3,]    7    7    7    7
> mat7<-matrix(rep(7,12),nrow=3); mat7
     [,1] [,2] [,3] [,4]
[1,]    7    7    7    7
[2,]    7    7    7    7
[3,]    7    7    7    7
> 
> #값을 먼저 채우고 차원을 지정
> mat8<-matrix(rep(7,12))
> dim(mat8)<-c(3,4)
> mat8
     [,1] [,2] [,3] [,4]
[1,]    7    7    7    7
[2,]    7    7    7    7
[3,]    7    7    7    7
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
> # rbind() 함수
> mat4 <- matrix(c(1:9),nrow=3,byrow=T) ; mat4
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
> mat4 <- rbind(mat4,c(11,12,13)) ; mat4  #행 추가
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9
[4,]   11   12   13
> 
> # cbind() 함수
> mat5 <- matrix(c("a","b","c","d"),nrow=2,byrow=T) ; mat5
     [,1] [,2]
[1,] "a"  "b" 
[2,] "c"  "d" 
> mat5 <- cbind(mat5,c('e','f')) ;mat5 # 열 추가
     [,1] [,2] [,3]
[1,] "a"  "b"  "e" 
[2,] "c"  "d"  "f" 
> mat5<-cbind(mat5,c("g","h"))[,c(1,2,4,3)];mat5 # 열 순서 바꾸기
     [,1] [,2] [,3] [,4]
[1,] "a"  "b"  "g"  "e" 
[2,] "c"  "d"  "h"  "f" 
> mat5<-mat5[,c(1,2,4)]; mat5 # 3열 삭제
     [,1] [,2] [,3]
[1,] "a"  "b"  "e" 
[2,] "c"  "d"  "f" 
cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
> # colnames(), rownames() 함수
> colnames(mat5) <- c('First','Second','Third') ; mat5  #열이름 지정
     First Second Third
[1,] "a"   "b"    "e"  
[2,] "c"   "d"    "f"  
> rownames(mat5) <- c("James""Rylee") ; mat5 #행이름 지정
      First Second Third
James "a"   "b"    "e"  
Rylee "c"   "d"    "f"  
> 
> # length(), NROW(), NCOL(), nrow(), ncol() 함수
> length(mat5) # 데이터 개수 반환
[16
> NROW(mat5) # 행 수 반환
[12
> NCOL(mat5) # 열 수 반환
[13
> nrow(mat5) # 행 수 반환
[12
> ncol(mat5) # 열 수 반환
[13
> 
> #NROW, nrow 의 차이
> #NROW는 벡터도 1열 매트릭스로 인식
> vec1<-c(1,2,3); vec1
[11 2 3
> length(vec1)
[13
> NROW(vec1) # 1column matrix로 생각함.
[13
> NCOL(vec1) # 1column matrix로 생각함.
[11
> nrow(vec1) # 벡터에서는 NULL
NULL
> ncol(vec1) # 벡터에서는 NULL
NULL
cs

출처 - 경영프로그래밍 강의 자료 (양성병 교수님)


'IT,인터넷 관련 학습 > R언어 학습' 카테고리의 다른 글

[R] 리스트 (List)  (0) 2019.05.11
[R] 배열 (Array)  (0) 2019.05.11
[R] 벡터 (Vector)  (0) 2019.05.11
[R] R 자료형 (Data Type)  (0) 2019.05.11
빅데이터 통계학 (4)  (0) 2019.04.05

+ Recent posts