-
Notifications
You must be signed in to change notification settings - Fork 34
Description
(I accidentally wrote this in an already-merged pull request, #93, so I'm moving it here.)
Thanks for your work on this package!
I was looking at this package to see if it could handle what I'd proposed previously within the udunits2 package (pacificclimate/Rudunits2#9). I have a very common use case for this feature that I was wanting again today. I'll describe it in a way that will hopefully clarify the issue:
I work with multiple chemicals simultaneously (specifically, I'm working with hospital laboratory test data). I need to be able to work with molar concentration units (e.g. "mole/L" and related SI conversions from there), mass concentration units (e.g. "mg/dL"), and sometimes historical and nonstandard units (e.g. "uIU/mL" for insulin) for many different chemical simultaneously. For example, I need to be able to work with glucose (molecular weight = 180.156 g/mole) and insulin (molecular weight = 5733.55 g/mole; 1 µIU/mL = 0.143988 pmol/L) in the same code.
What I'd like to be able to do is standardize all my units simultaneously with code like the following (not tested, typed directly into GitHub).
my_data <- data.frame(
test_name=c("glucose", "insulin"),
original_value=c(1, 1),
original_units=c("mg/dL", "uIU/mL"),
standard_units=c("mmol/L", "pmol/L"),
stringsAsFactors=FALSE)
install_conversion_constant("mole", "gram", 180.156, system="glucose")
install_conversion_constant("mole", "gram", 5733.55, system="insulin")
install_conversion_constant("mole", "IU", 143.988, system="insulin")
my_data$original_value <- set_units(my_data$original_value, my_data$original_units, system=my_data$test_name)
my_data$standard_value <- set_units(my_data$original_value, my_data$standard_units, system=my_data$test_name)