학부공부/데이터마이닝과통계

R패키지의 데이터셋을 다뤄보기 ( with mtcars )

IT grow. 2018. 11. 30. 01:39
반응형

오늘은 R패키지에 있는 "mtcars"데이터를 이용하여서 , 자동차 중량(wt) 대비 연비(wt)의 선점도 (scatter diagram chart)를 그려보겠다.

R에 내장된 datasets : 내장된 데이터 셋을 불러오는 방법과 현재 설치된 패키지가 가지고 있는 데이터 셋을 조회하는 방법에 대한 코드를

살펴본다.

또한 410개의 패키지에서 제공하는 3140개의 데이터 셋에 대한 패키지 명 , 데이터 셋 명칭 , 데이터 셋 주제 (Topic) , 데이터 행 (row)의 수 

데이터 열 (Column)의 수에 대한 정보가 포함되어 있는 파일을 알아 보겠다.


http://www.public.iastate.edu/~hofmann/data_in_r_sortable.html

https://vincentarelbundock.github.io/Rdatasets/datasets.html

--> 관련 자료들을 확인해 볼 수 있다.


아래 코드는 현재 사용자 환경에 설치된 패키지가 포함하고  있는 데이터 셋에 대한 정보를 불러온다.

Package_Data_List <- data(package = .packages(all.available = TRUE))

head(Package_Data_List$results)

# 패키지별 데이터 셋 정보의 상위 6개 항목을 확인

     Package    LibPath                             

[1,] "datasets" "C:/Program Files/R/R-3.5.1/library"

     Item                    

[1,] "AirPassengers" 

     Title                                           

[1,] "Monthly Airline Passenger Numbers 1949-1960" 

--> 위의 결과값들은 상위 첫번째 값들만 가져와 보았다.



data("mtcars")

head(mtcars)

# inner data set 

상위 mtcars를 확인해 본다.

                   mpg cyl disp  hp drat    wt  qsec vs am gear carb

Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4

첫번째 결과값들만 가져와 보았다.


?mtcars

불러온 데이터 셋에 대한 정보는 "?" 뒤에 해당 데이터 셋 명칭을 입력한다.

데이터 셋의 주제 , 설명 , 포맷 , 소스 등을 확인할 수 있다.

"?" 뒤에 데이터 셋 명칭을 입력하게 되면 RStudio를 사용하는 경우 

우측의 Help 화면에서 해당 데이터 셋에 대한 정보가 나타난다.


str(mtcars)

문자열로써 mtcars의 정보를 가져온다.

'data.frame': 32 obs. of  11 variables:

 $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...

 $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...

 $ disp: num  160 160 108 258 360 ...

 $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...

 $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...

 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...

 $ qsec: num  16.5 17 18.6 19.4 17 ...

 $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...

 $ am  : num  1 1 1 0 0 0 0 0 0 0 ...

 $ gear: num  4 4 4 3 3 3 3 4 4 4 ...

 $ carb: num  4 4 1 1 2 1 4 2 2 4 ...


#데이터의 변수를 직접 이용 

attach(mtcars)

#그래프의 창 크기를 설정

win.graph(7,5)

#단순 선점도 (중량 대비 연비)

plot(wt , mpg , main="자동차 중량 대비 연비 산점도", xlab="자동차 중량", ylab="연비(mpg)", pch=19, cex=1.2)

결과화면은 다음과 같다 .

우리는 다음과 같은 결과값에 따라서 다음과 같은 생각을 할 수 있다.

1.중량이 커질수록 연비는 어떻게 되는가?

2.연비가 높을수록 중량이 커지는가??


grid(col=3)



#단순회귀 적합선 추가 : lm(y~x) 함수 , abline()함수 


sr <- lm(mpg~wt)

abline(sr , lty=2, lwd=2, col="red")

sr 의 결과값은 다음과 같다.

Call:

lm(formula = mpg ~ wt)


Coefficients:

(Intercept)           wt  

     37.285       -5.344 

계수에 대한 설명을 해주고 있다.

다음은 abline을 추가한 결과화면이다.



#단순회귀 적합선 식 표시 


text(4,27, labels = paste0("Y=" , round(sr$coef[[1]],4),"(+)", round(sr$coef[[2]],4), " * X"), col=2, cex=1.2)

다음은 적합선 식을 표시한 결과화면이다 . 


R패키지에 있는 'mtcars' 데이터를 이용하여 , 자동차 연비(mpg), 기통(cyl) , 출력(hp) , 중량(wt) 등 4가지간의 선점도를 작성한다.

# 산점 앵렬도 : 여러 변수들의 상관관계를 동시에 나타낸다.


pairs(mtcars[c(1, 2, 4, 6)])

pairs(~mpg+cyl+hp+wt, data = mtcars, main="자동차 특성치 산점행렬도", panel=function(x,y) 

  {points(x,y, pch=19, col=4); abline(lm(y~x), col=2)})










반응형