더북(TheBook)

2.5.5 요인

데이터 프레임의 기본 성질 가운데 꼭 기억해야 할 한 가지는 바로 메모리를 최대한 효율적으로 사용하려고 한다는 것이다. 가끔 이러한 성질 때문에 예상하지 못한 문제가 발생하기도 한다.

예를 들어 문자형 벡터를 사용하여 데이터 프레임의 열을 만들 때, 문자형 벡터는 자동으로 요인(factors) 형태로 변환되고 반복되는 부분이 최대한 없도록 메모리는 최소로 사용하려고 한다. 실제로 요인 타입은 제한된 가능한 값을 표현하는 레벨이라는 미리 지정된 가능한 값의 집합에서 나온 정수형 벡터라고 볼 수 있다.

persons 데이터 프레임에 str() 함수를 호출하면 다음 내용을 확인할 수 있다.

> str(persons)
'data.frame': 3 obs. of 4 variables:
 $ Name : Factor w/ 3 levels "Ashley","Jennifer",..: 3 1 2
 $ Gender: Factor w/ 2 levels "Female","Male": 2 1 1
 $ Age : num 24 25 23
 $ Major : Factor w/ 3 levels "Computer Science",..: 2 3 1

이름, 성별, 전공이 문자형 벡터가 아니라 요인 객체라는 사실을 분명히 확인할 수 있다. GenderFemale 또는 Male 둘 중 하나이기 때문에 요인으로 표시되는 것이 합리적이다. 따라서 이 두 값을 표시하는 데 정수 2개만 사용하는 것이 반복되는 모든 값을 저장하는 문자형 벡터를 사용하는 것보다 훨씬 효율적이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.