[R] Unit conversion

의학 논문에서 SI unit 로 표기를 요구하는 일이 많습니다. 임상에서 흔히 사용하는 통상적인 단위에서 변환을 해야 하죠. 예를 들어 콜레스테롤 같은 것은 ‘mg/dL’ 로 임상에서 사용하는데, 이것을 SI unit 로 바꾸면 mmol/L 로 해줘야 합니다. 이런 변환을 해주는 게 뭐가 없을까… R 에는 워낙에 수많은 패키지가 이미 있기 때문에, ‘엔간하면’ 있습니다. 이것도 찾아보니 나오네요.

> library(gdata)  ## 없으면 물론 install.packages("gdata") 먼저 하고...

> ConvertMedUnits(200, "cholesterol", to="SI", exact=TRUE)
[1] 5.18

Cholesterol 200 mg/dL = 5.18 mmol/L 로 변환이 되었네요. exact 라는 옵션이 들어간 것은 그냥 cholesterol 만 주면 LDL-cholesterol, HDL-cholesterol 도 있기 때문에 ‘cholesterol’ 과 정확히 일치하는 것을 하라고 그렇게 된 겁니다.

MedUnits 라는 데이터 프레임에서 변환하려는 측정 항목의 conversion factor 를 찾게 되어 있습니다. 다음 예를 보시면 이해가 되실 겁니다.

> str(MedUnits)
'data.frame':   167 obs. of  5 variables:
 $ Abbreviation    : chr  "" "" "" "" ...
 $ Measurement     : chr  "Acetaminophen" "Acetoacetic acid" "Acetone" "Alanine" ...
 $ ConventionalUnit: chr  "g/mL" "mg/dL" "mg/dL" "mg/dL" ...
 $ Conversion      : num  6.62 0.098 0.172 112.2 10 ...
 $ SIUnit          : chr  "mol/L" "mmol/L" "mmol/L" "mol/L" ...

> grep("cholesterol", MedUnits$Measurement, value=TRUE, ignore.case=TRUE)
[1] "Cholesterol"                                  "High-density lipoprotein cholesterol (HDL-C)"
[3] "Low-density lipoprotein cholesterol (LDL-C)" 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다