본문 바로가기
R 언어(프로그래밍) - 기초

R언어 기초 Chapter 3 - 범주형변수 정리방법(변수 2개)

by 푸쓰 2019. 7. 21.
반응형

agecity1.csv
0.00MB
TWO_CATE.csv
0.00MB
범주형변수 정리(변수2개, 빅데이터).R
0.00MB

안녕하세요 ^^

푸디헬스입니다.

저번에 변수가 1개인 범주형 변수를 정리해보았습니다. 오늘은 변수가 2개인 범주형 변수 정리 방법을 알려드리겠습니다.

먼저 R Studio를 실행시킵니다.

(TWO_CATE.csv 파일을 다운로드합니다.)

 

read.csv('파일 위치경로', 옵션) : csv파일(엑셀 파일)을 읽을 때 사용되는 함수입니다. UTF-8을 해주셔야 한글이 깨지지 않습니다.

  • 파일 위치를 보는 방법입니다.

속성을 클릭해주세요

  • 위치를 복사를 합니다.

위치를 복사해주세요

R에 복사를 하면 C:\Users\user\Desktop로 되어있는데 \  --> / 로 모두 바꾼 다음 파일 이름을 적어주셔야 합니다. R에 들어갈 코드는 C:/Users/user/Desktop/TWO CATE.csv

class가 data.frame

클래스를 확인해보면 data.frame이라고 뜹니다. data.frame은 list클래스로 각각의 열에 다른 종류의 class가 들어갈 수 있습니다. 다운로드한 데이터 자료에는 GENDER아래에는 문자형 데이터(Character)가 AGE아래에는 문자형 데이터(Character)가 들어가 있습니다.

 

TWO_CATE(데이터 프레임) 데이터에서 각 열을 불러오는 함수는 $를 써주고 열의 이름을 써주시면 됩니다.

TWO_CATE$GENDER

 

똑같이 반복해주시면 됩니다.

table함수 : 빈도 표를 만들어주는 함수에 각 열의 데이터를 넣어주시면 2X2 빈도 표가 만들어집니다. 그리고 그 빈도 표를 table_TWO에 넣어줄 수 있습니다. 그럼 두 범주형 데이터를 빈도 표로 시각화하였는데 또 다른 시각화 방법이 있습니다.

 

heatmap함수를 이용하는 것입니다.

첫 번째 코드를 실행시키면 2x2 사각형이 색칠이 되어 나오는데 이상한 사각형이 딸려서 나옵니다. 저희는 그것을 없애주는 코드를 옵션으로 2번째 줄에 적용시킨 것입니다. NA는 no라고 생각하시면 편합니다.

맨 마지막 부분 col = colorRampPalette(c('ivory', 'red'))(100))은 색을 넣어주는 옵션입니다. 데이터가 클수록 숫자가 커집니다(여기서는 제가 다음 예시를 위해 그냥 큰 숫자를 넣었습니다.)

그래서 빈도 표랑 비교해보시면

각각의 색이 숫자를 의미한다는 것을 알 수 있습니다. 숫자가 클수록 진한 색을 의미합니다. 지금은 데이터가 작아서 큰 의미가 없지만 데이터가 커지면 유용하게 쓰입니다.

 

자 그럼 2개의 범주형 데이터 정리하는 방법을 배워보았습니다. 이 방법은 빅 데이터를 시각화하는데도 똑같이 사용됩니다. 똑같이 agecity1.csv를 다운로드합니다. 위의 방법과 똑같이 따라와 주시면 됩니다.

 

as.matrix() 함수는 data.frame을 matrix로 바꾸어주는 함수입니다. heatmap에는 matrix나 table이 들어가야 하기 때문에 바꾸어 주었습니다.

head(데이터, 보고 싶은 관측치 개수) : 데이터의 앞부분부터 몇 개의 데이터를 볼 것인지를 지정하는 함수입니다.

데이터가 큰 경우 쪼개서 보고 싶을 때 사용하는 함수입니다.

옵션이 궁금하신 분은 read.csv 코드를 치고 Ctrl + enter을 눌러주시면 됩니다. 그리고 Arguments 부분을 읽어 보시면 됩니다.

이 코드를 실행해줍니다.

 

이 plot을 보면 서울특별시와 경기도에 인구수가 몰려있다는 것을 

한눈에 알아볼 수 있습니다.

여기서 한 발 더 나아가

위의 코드를 보면 prop.table은 백분율 빈도 표를 만드는 함수라는 것을 알 수 있습니다. 여기서 1이라는 옵션을 주면 행의 합이 1, 2라는 옵션을 주면 열의 합이 1로  백분율 빈도 표를 만들어 줍니다.

 

그래서 이 백분율 빈도 표를 heatmap함수에 넣어주면 각 행과 각 열 별로 데이터를 분석할 수 있습니다.

첫 번째 코드의 결과로 각 도시의 총인구수를 한눈에 비교할 수 있습니다.

 

두 번째 코드의 결과로 각 도시에 어떤 연령대가 많은지를 한눈에 알아볼 수 있습니다. 가운데의 세종특별시를 제외하면 40~60세가 각 도시에 가장 많다는 것을 알 수 있습니다. 이런 자료를 보고 우리나라가 고령화가 진행되고 있는지 알 수 있습니다.

지금까지 간단한 범주형 변수의 데이터 정리부터 빅데이터까지 시각화를 해 보았습니다. 데이터 자료와 코드는 첨부파일로 올려놓았습니다. 각 코드를 한 줄씩 실행하면서 결과를 확인해보시면 어렵지 않게 이해하실 수 있을 거라고 생각합니다. 혹시나 공부하시다 이해가 가지 않는 부분이 있으시면 댓글로 물어보시면 제가 답변해드리겠습니다!

그럼 오늘의 포스팅을 마치겠습니다.

좋은 하루 보내세요^^

반응형

댓글