본문 바로가기
R 프로그래밍/R basic

[R데이터구조]R 데이터 구조 파악하기

by 찐남 2021. 7. 9.

R를 활용해서 데이터 분석 밎 모델링을 수행할 때,
가장 중요한 내용 중 하나가 바로 데이터 구조이다.

R이 내부적으로 처리하는 데이터 구조는 크게 아래 4가지이다.
1) 벡터(Vector)
2) 행렬(Matrix)
3) 배열(Array)
4) 데이터 프레임(Data frame)
5) 리스트(List)

하나씩 차근차근 살펴보자.

1) 벡터(Vector)

R에서 벡터는 1개 이상의 원소를 가지는 동일한 변수형으로 이루어진 1차원 데이터 구조이다.
여기서 중요한 Key Point는 "동일한 변수형" 이라는 것이다.
벡터하면 고등학교 시절(1,2) 와 같은 두 개의 숫자(x,y)로 이루어진 좌표만을 기억할 수도 있다.

(R에서는 ("초등학교", "중학교", "고등학교") 로 이루어진 것도 벡터이다. 꼭 숫자로만 이루어 진 것은 아니다.)


하지만, R에서 벡터는 데이터를 저장하는 가장 기본적인 데이터 구조이다.

( 1 ) 은 얼핏보면 벡터가 아닌 하나의 숫자인 것 처럼 보이지만,
실상은 하나의 원소로 이루어진 벡터이다.

중요한 것은 "동일한 변수형"이다.
왜 중요한 지는 [R데이터구조] 벡터(Vector)를 꼭 참고하기 바란다.

2) 행렬(Matrix)

R에서 행렬은 동일한 변수형으로 이루어진 2차원 데이터 구조이다.
여기서 중요한 Key Point 역시 "동일한 변수형"이라는 것이다.
행렬하면, 고등학교에서 배운
1, 2
3, 4
와 같이 숫자로 이루어진 행렬(2 by 2 matrix)가 생각날 것이다.

하지만, R에서는
"남성", "20대"
"여성", "30대"
처럼 문자로 이루어진 데이터 구조도 행렬(2 by 2 matrix)이다.

여기서도 중요한 것은 "동일한 변수형"이라는 것이다.
왜 중요한 지는 [R데이터구조] 행렬(Matrix)를 꼭 참고하기 바란다.

 



3) 배열(Array)

행렬(Matrix)를 한 차원 더 확장시킨 데이터 구조가 배열(Array)이다.

역시 숫자형 변수로만 이루어져 있다.

실제 R 프로그램을 작성할 때, 많이 사용하지는 않는 구조다.

 

2차원을 넘어가면 머릿속에 잘 그려지지 않아,

나 역시 거~~의 사용하지 않는 데이터 구조이다.

이런게 있다. 정도로만 알아 두자.

 

4) 데이터 프레임(Data frame)

R에서 데이터 프레임은 여러 변수형으로 이루어진 2차원 매트릭스 구조이다.
행렬(Matrix)과 동일한 형태의 데이터 구조이지만,
가장 큰 차이는 여러 변수형으로 이루어져 있다는 것이다.

여기서 중요한 것은 "여러 변수형"이다.
즉, 하나의 변수형으로 이루어진 데이터 구조가 아니라는 것이다.
그점에서 행렬(Matrix)과 구분된다.

데이터 구조의 정의를 보면,
행렬(Matrix)이 데이터 프레임(Data frame)에 포함되는 구조라는 것을 알 수 있다.

데이터 프레임은 통계적 모델링, ML(Machine Learning) 알고리즘 구현 등
모델링을 할 때, 가장 많이 사용되는 데이터 구조이다.
꼭 기억하길 바란다.

향후 실습하게 될 거의 모든 자료들이 데이터 프레임이라는 점을 미리 말해둔다.

5) 리스트(List)

R에서 리스트(List)는 가장 포괄적인 개념을 가지는 데이터 구조이다.
리스트(List)는 다수의 벡터, 행렬, 데이터 프레임들을 모두 저장할 수 있다.
데이터 프레임 구조에 익숙해 있었기 때문에, 처음 이 개념을 이해하는 데 좀 어려움이 있었다.

하지만, 전혀 겁먹을 필요 없다.
데이터 구조에 대한 선입견과 편견이 없다면, 개념을 이해하는 데 전혀 어려움이 없을 것이다.
믿어도 된다.

위의 4가지 데이터 구조를 잘 기억해야 한다.

R 코드를 작성하다 보면,
행렬(Matrix)을 인수로 입력해야만 하는 R함수가 있고,
데이터(Data frame)을 인수로 입력해야만 하는 R함수가 있다.

데이터 구조를 정확하게 파악하고 있지 않으면,
둘다 비슷하게 생긴 데이터 구조여서 에러가 발생해도 찾기가 매우 어려울 수 있다.

비슷비슷한 R 데이터 구조의 차이점을 꼭 기억하길 바란다 !!

그럼 다음 포스팅에서는
R에서 각 데이터 구조를 어떤 함수를 이용해서
어떻게 생성하는 지 실습을 통해서 익히자!



반응형

댓글