728x90
공부 페이지
275 페이지 ~ 276 페이지
배운 개념
factor() 함수로 범주형 변수 만들기
변수는 크게 연속형 변수와 범주형 변수로 나뉜다. 가끔 데이터를 만들 때 범주형 변수를 숫자로 입력할 때가 많다.
이를 카리켜 흔히 코딩(Coding)이라고 한다. 성별을 "남자", "여자"로 입력받기 보다, 1, 2, ... 처럼 순서대로 입력하면 데이터를 만들기도 편하고, 저장용량도 줄어든다.
코드집을 따로 만들어서 1은 "남자", 2는 "여자"를 의미하는 것을 알리기만 하면 된다. 이 방식에는 한 가지 문제가 있다. 1과 2로 구성된 변수 성별이 우리가 보기에는 범주형 변수지만, R이 보기에는 숫자일 뿐이다.
read.csv()와 같은 함수는 외부 데이터를 불러와 인식할 때, 한 변수의 모든 관측치가 숫자면 숫자 형식으로 인식하고, 문자가 하나라도 있으면 factor 형식으로 인식합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | > Sys.setlocale('LC_ALL' , 'ko_KR.UTF-8') [1] "ko_KR.UTF-8/ko_KR.UTF-8/ko_KR.UTF-8/C/ko_KR.UTF-8/C" > setwd("~/Documents/Workspace/R/Practice/data") > demo = read.csv("gender_age.csv", fileEncoding = "euc-kr") > demo Gender Age 1 1 30 2 2 20 3 1 20 4 2 20 5 1 30 6 2 30 > str(demo) 'data.frame': 6 obs. of 2 variables: $ Gender: int 1 2 1 2 1 2 $ Age : int 30 20 20 20 30 30 | cs |
$Gender와 $Age의 값 앞에 붙어 있는 "int"는 숫자 형식 중에서도 정수(Integer)로만 이뤄진 변수를 의미한다. 범주형 변수를 숫자로 인식하게되면 나중에 불편한 상황이 발생한다. 예를 들어 범주형 변수를 요약할 때는 기본적으로 수준별로 관측치의 개수를 센다. 연속형 변수로 잘못 인식한다면 평균을 구하게 된다.
따라서 factor() 함수를 써서 factor 형식으로 바꿔준다.
1 2 3 4 5 6 | > demo$Gender [1] 1 2 1 2 1 2 > factor(demo$Gender) [1] 1 2 1 2 1 2 Levels: 1 2 | cs |
factor()로 범주형 변수로 바꾸면 관측치들의 값 아래에 "Levels: 1 2"와 같이 수준 정보가 출력된 것을 볼 수 있다. 이 1, 2 는 숫자가 아니라 문자의 역할을 하는 셈이다.
다음 시간에 배울 것
$를 활용한 변수 수정과 추가하기
'R > R 프로젝트' 카테고리의 다른 글
[ 이토록 쉬운 통계&R 100일 프로젝트 ] 49일차 (0) | 2018.07.04 |
---|---|
[ 이토록 쉬운 통계&R 100일 프로젝트 ] 48일차 (0) | 2018.07.03 |
[ 이토록 쉬운 통계&R 100일 프로젝트 ] 46일차 (0) | 2018.07.01 |
[ 이토록 쉬운 통계&R 100일 프로젝트 ] 45일차 (0) | 2018.06.30 |
[ 이토록 쉬운 통계&R 100일 프로젝트 ] 44일차 (0) | 2018.06.29 |
댓글