의학 논문에서 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)"