태그 보관물: uconv

R에서 미국 연비(MPG)를 한국연비(km/L)로 있어보이게 바꾸기

우리 나라에서 사용하는 연비란 에너지관리공단 수송에너지 > 자동차공인연비 > 공인연비에 따르면 연료 1ℓ로 주행 가능한 거리(km)를 말하는 것을 말합니다. 그러나 미국은 연료 1갤런(gallon)으로 주행 가능한 거리를 마일(mile)로 계산하여 연비를 계산합니다. 미국이랑 우리나라가 단위가 다르니 생기는 문제입니다. 참고로 1갤런은 3.785411784리터(참고: 갤런 – 위키백과, 우리 모두의 백과사전) 이고 1 마일은 1.609344 킬로미터(참고: 마일 – 위키백과, 우리 모두의 백과사전) 입니다.

뭐 사전 지식은 다 알았으니, 실제로 연비를 바꿔보겠습니다. 미국 연비를 10부터 40까지 만들보겠습니다.

mpg < - seq(10,40)

mpg을 입력해 확인해보시면, 10부터 40까지 값이 들어있는 것을 보일 수 있습니다. 이것을 미국 연비라고 해봅시다. 이때 이것을 한국 연비로 바꿔 계산해봅시다. 위에서 살펴본 것을 토대로 변환식을 짜면 다음과 같습니다.

kmL <- (mpg * 1.609344)/3.785411784

kmL을 입력해 확인해보시면, mpg에 들어있던 것을 한국 연비로 바꾼 값을 확인할 수 있습니다. 미국 자동차 연비마일 MPG -> km/L 보는법의 포스트와 비교해 보면, 지금까지 계산한 값이 더 정확하고 자세한 것처럼 보입니다. ^^; 위의 것은 너무 단순해서 조금은 멋지게 패키지를 사용해서 바꿔보도록 하겠습니다. 아래 코드는 지금까지 한 것을 다 넣고 패키지를 설치해서 계산하고 위에서 계산한 것과 패키지를 이용해서 계산한 것을 비교해봤습니다.


mpg <- seq(10,40)
kmL <- (mpg * 1.609344)/3.785411784 ## 단순하게 바꾸기
install.packages("datamart") ## 패키지 설치
library(datamart) ## 패키지 설치
uconv(1, "US gal", "l", uset="Volume") ## 1 캘런을 리터로
uconv(1, "mile", "km", uset="Length") ## 1 마일을 킬로미터로
kmL.uconv <- uconv(mpg, "mile", "km", uset="Length")/uconv(1, "US gal", "l", uset="Volume") ## uconv()을 이용하여 바꾸기
kmL == kmL.uconv ## 두 계산 결과 확인

view raw

mpgToKml.R

hosted with ❤ by GitHub

맨 마지막 줄에 있는 kmL == kmL.uconv 명령을 입력하면 그 결과가 모두 TRUE로 나오는 것을 보니 두 계산 결과가 같은 것임을 확인할 수 있습니다.