본문 바로가기

배우기/기록의 중요성

[R] 이해한대로 써보는 차원축소

728x90
반응형

차원축소란 2차원이면 1차원으로, 1차원이면 0차원(스칼라)로 축소되는 것을 의미한다.

여러 복잡한 자료구조를 갖는 언어는 데이터를 표현하기 적절한 구조들을 가지고 있다.

1 이라는 숫자 하나가 있다. 이 스칼라 값을 굳이 벡터로 표현할 이유는 없다. 비효율적이기 때문이다.

1 하나로 더더욱 데이터 프레임으로 만들어주진 않는다.

 

그렇기 때문에 어떤 데이터가 있을 때, 그 데이터 일부를 선택하거나 추출하거나 등의 작업을 진행 하면서 출력되는 데이터 차원의 경우 굳이 원래의 데이터 차원을 유지할 필요가 없다.

예를 들어 데이터 프레임은 2차원인데 컬럼 하나를 선택하면 1차원으로 추출된다. 굳이 2차원으로 표현할 필요가 없는 것이다.

항상 색인에는 차원 축소가 포함되어 있다.

v2를 살펴보자

v2[1]은 차원 축소를 하지 않은 색인(차원을 유지하는 색인) 이며,

v2[[1]]은 차원 축소가 발생하는 색인이다.

 

https://metime.tistory.com/96

 

[복습] R(programming language) 의 자료구조(벡터, 데이터 프레임) + 복습후기(20231121)

R의 자료구조에는, 0. 스칼라 1. 벡터 2. 리스트 3. 행렬 4.배열 5. 데이터 프레임 이 있다. 오늘은 벡터와 데이터 프레임에 대하여 배웠다. 이와 비교하여 먼저 스칼라란, 하나의 상수로 자료의 구조

metime.tistory.com

 

이 글에서 작성한 적이 있는데 emp라는 데이터 프레임에서 컬럼을 추출하는 방식 중 하나가 emp[2] 이 방법이 있다. 이 방법은 가급적 쓰지 말라고 하셨는데, 이게 바로 차원을 축소하지 않겠다는 색인 방식이다.  다시 한번 테스트해보겠다.

emp[2]로 추출하니 두 번째 컬럼인 ENAME 이 추출된다. 하지만 벡터형식은 아니다. 2차원 유지된 상태이다.

벡터형식은 emp$ENAME으로 출력된 결과이다. 명확한 차원 축소가 발생하였다.

 

간혹 자료구조 자체가 유지되어야 할 때가 있다.

하나의 행 또는 컬럼을 뽑긴 했으나 차원이 낮아지면 안 되는 경우가 있어서 차원 축소 하지 않고 추출하는 방법이 있는 것이다.

 

728x90
반응형