R의 배열과 리스트

빅데이터/R 2018. 12. 10. 11:14

R의 배열과 리스트



1. 배열

1) 배열의 개념

배열(array)은 행렬의 확장 개념으로 데이터의 형태가 3차원 이상으로 구성되어 있는 것을 말합니다. 배열은 차원을 어떻게 지정 하느냐에 따라 1차원, 2차원, 3차원, 4차원 등으로 구성할 수 있습니다. 벡터와 행렬처럼 데이터의 유형은 하나만 가질 수 있습니다. dim이라는 argument값을 통해 차원을 지정합니다.

> a1 = array(1 : 10, dim = 10)   # 10개의 배열을 가진 1차원 형태의 데이터를 가짐
> a1
 [1]  1  2  3  4  5  6  7  8  9 10
> a2 = array(1 : 10, dim = c(25))   # 2차원 형태가 되며 2행 5열인 행렬이 됨
> a2
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> a3 = array(1 : 10, dim = c(334))   # 3x3x4의 3차원 형태 행렬이 됨
> a3
, , 1
 
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9
 
, , 2
 
     [,1] [,2] [,3]
[1,]   10    3    6
[2,]    1    4    7
[3,]    2    5    8
 
, , 3
 
     [,1] [,2] [,3]
[1,]    9    2    5
[2,]   10    3    6
[3,]    1    4    7
 
, , 4
 
     [,1] [,2] [,3]
[1,]    8    1    4
[2,]    9    2    5
[3,]   10    3    6
cs


2. 리스트 

1) 리스트의 개념

리스트(list)는 R의 데이터 형태인 벡터(vector), 요인(factor), 행렬(matrix), 배열(array), 데이터 프레임(data frame)과 리스트 자신까지도 원소로 가질 수 있습니다. 리스트 구조로 데이터를 저장해서 분석할 때 사용되며, 대부분 데이터를 분석한 결과의 형태가 리스트인 경우가 많습니다. 


2) 리스트를 생성하는 방법

list() 함수를 사용하며, 하나의 벡터와 하나의 행렬을 가지는 리스트를 생성합니다. ex) list(벡터, 요인, 행렬, 데이터 프레임, 리스트)

> v1 = 1 : 5
> m1 = matrix(1 : 6, nrow = 2, ncol = 3)
> d1 = list(v1, m1)    # d1이라는 리스트는 5개의 원소를 가지는 수치형 벡터와 2행 3열의 행렬을 원소로 가짐
> d1
[[1]]
[11 2 3 4 5
 
[[2]]
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
cs


리스트의 원소 중에서 일부를 추출하는 방법으로는

(1) 리스트명[index] : index의 위치에 있는 원소를 가져오며 최종적인 형태는 리스트가 됩니다.

(2) 리스트명[[index]] : index의 위치에 있는 원소를 가져오며, 최종적인 결과는 index 위치에 있는 원소의 테이터 형태가 됩니다.


> d1 = list(v1, m1)
> d1
[[1]]
[11 2 3 4 5
 
[[2]]
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
 
> d1[1]    # 리스트의 첫 번째 원소를 가져오며, 리스트가 됨
[[1]]
[11 2 3 4 5
 
> d1[[1]]    # 리스트에 있는 첫 번째 원소를 가져오지만, 첫 번째 원소가 벡터이기 때문에 벡터가 
[11 2 3 4 5
cs






'빅데이터 > R' 카테고리의 다른 글

R의 패키지  (5) 2018.12.10
R의 데이터 프레임  (0) 2018.12.10
R의 요인과 행렬  (0) 2018.12.09
R의 벡터 속성  (0) 2018.12.09
R에서 백터 생성 하기  (0) 2018.12.09