프로그래밍 /R

[R 자료구조] 3. 고급 자료구조

yooj_lee 2019. 6. 12. 15:33
300x250

3. 고급 자료구조

벡터는 1차원 자료 구조로서 많은 데이터를 담지 못한다. 이에 R은 보다 다양한 데이터를 담을 수 있는 자료구조를 제공한다.

 

3.1. 데이터 프레임 - data.frame()

: 외형적으로 엑셀 스프레드시트 처럼 생김. 데이터를 읽어들여올 경우 대부분 df라고 보면 됨. 2차원의 자료 구조. 통계적 관점에서 봤을 때 각 열은 하나의 변수이고 각 행은 하나의 관측값이 된다. 

data.frame을 어떻게 구성하는지 살펴보면, 각 열은 실제 vector이며 각 vector의 길이는 같다. 각 열이 서로 다른 타입의 데이터를 가질 수 있게한다는 점에서 매우 중요한 의미를 가진다. 즉, 이것은 하나의 열 내에서 각 원소가 반드시 같은 타입이어야 함을 의미한다. 

데이터 프레임은 data.frame(v1, v2, v3, ...) 커맨드로서 생성 가능하다. 

 

3.2. 리스트 - list()

: 다차원 자료 구조. 하나의 타입만이 아닌 여러 타입을 원소로 가질 수 있다(모든 유형의 객체 집합). 즉, list는 타입과 객체의 수에 관계없이 객체를 저장할 수 있다. -> 하나의 저장소가 동일 타입 또는 다른 타입의 임의의 객체들을 가지게 되는 경우에 이용.

list는 list(arg1, arg2, ...) 커맨드로서 생성 가능하다.

 

3.3. 행렬 - matrix()

: 2차원 자료 구조. 같은 타입의 원소만을 가질 수 있다. 고유값, 역행렬 계산 등 행렬 연산을 사용하고자 matrix로 변환.

행렬은 matrix(element, nrow = k) 커맨드로서 생성 가능하다.

 

3.4. 배열 - array()

: 다차원 자료 구조. 같은 타입의 원소만을 가질 수 있다는 점에서 리스트와 구분된다. 행렬의 다층구조로 이해하면 쉽다. 

배열은 array(element, dim = (p, q, r)로서 생성된다. 이때 p는 행의 개수, q는 열의 개수, r은 이후 차원의 개수(원소가 되는 행렬의 개수라고 생각하면 쉽다)이다.

 

 

300x250