R언어_산점도 그리기

 통계를 다룰 때, 2개의 변수가 있다면 상관관계를 알아보기 위해서 가장 많이 쓰이는 그래프가 산점도 일 것입니다. 산점도 역시 엑셀에서 간단히 그릴 수는 있습니다. 이것을 R언어를 통하여 구현을 해보도록 하겠습니다.

먼저 데이터는 자동차 연비와 관한 데이터입니다. 

파일다운로드


데이터를 요약해 볼 수 있는 함수입니다. head(), dim() 함수 이고요. head()함수를 통해서 변수는 9개가 있으며 mpg, cyl, disp, hp, wt, accler, year, origin, carname입니다. 각각은 연비, 실린더 수, 배기량, 마력, 중량, 가속계수, 연도, 생산시, 차명 이라고 하네요.

우선, 배기량과 연비에 대한 관계를 산점도를 통해서 알아보도록 하겠습니다. 코드는 너무 간단합니다. 

plot(disp, mpg, col=as.integer(cyl))

disp(배기량)과 mpg(연비)의 관계를 plot으로 나타내라는 코드이며, col=as.integer(cyl)은 실린더의 수를 색상으로 나타내라는 것인데, cyl변수가 연속형 변수로 입력되어 있으므로 이것을 정수로 바꾸기 위해 as.integer()함수를 쓴 것입니다. 이 산점도를 보니 실린더 수에 대해서 좀 더 분석을 해볼 필요가 있는 걸로 보입니다. 

간단하게 box plot을 그려봤습니다. 실린더 수와 연비에서 실린더 수의 영향을 보기 위한 것인데, 실린더 수별 데이터를 확인해 보겠습니다.

table()함수를 사용하면 변수에 대한 빈도수를 확인할 수 있습니다. 데이터를 보면 3,5실린더의 수가 매우 적습니다.(보통 3,5 실린더는 오토바이에 많이 사용되기 때문입니다.) 그럼 3,5 실린더를 데이터에서 제외하는 방법을 알아보겠습니다. 

첫번째 문장을 보겠습니다.
car1 <- subset(auto, cyl==4 | cyl==6 | cyl==8)
car1이라는 변수를 만들고 그안에 내용을 넣는 코드 인대요. subset이라는 함수는 다음 조건을 만족하는 데이터만으로 데이터를 재구성하라는 것입니다, 뒤에 문장은 cyl 변수가 4 이거나(or) 6 이거나(or) 8인 데이터만으로 재구성하라는 의미입니다.
R의 논리 식 중에 '=='은 같다면 이라는 문법입니다. 'cyl==4'란 의미를 cyl변수 중에 4인것을 의미하는 것이지요.
이제 3,5 실린더인 데이터는 제외되고, 데이터가 재구성 되었습니다. 
해당 데이터로 박스 플롯을 다시 그려보겠습니다.

3,5 실린더는 제외된 것을 알 수 있습니다. 그렇다면 산점도를 다시 그려보도록 하겠습니다.

3,5 실린더의 데이터가 워낙 적어서 크게 영향은 없지만, 자세히 보시면 두가지 색상이 없어진 걸 알 수 있습니다.