对于实验室数据,测量值通常带有检测/报告限值和置信区间。例如,我可能测量了水中的镁浓度,其中最小报告值为 5,我收到了两次测量,第一次是 10,第二次是“<5”(即低于报告值)。作为最终用户,有时您希望“<5”被视为“5”,有时被视为“0”,有时被视为“2.5”。
我解决这个问题的方法是构造一个带有属性 LRL(报告下限)的 S3 类。我希望能够让用户执行以下操作:
a <- set_measurement("<5", LRL = 5)
b <- set_measurement(8, LRL = 5)
set_conservatism(1) # sets a global variable called "conservatism_coefficient" to 1
a
# 5 [LRL: 5]
c <- b + a
# 13 [LRL: 5]
set_conservatism(0.5)
a
# 2.5 [LRL: 5]
b + a
# 10.5 [LRL: 5]
c
# 13 [LRL: 5]
我想象的是“a”的值以某种方式设置为“LRL*conservatism_co-efficient”而不是一个数字。然后当其他一些函数试图访问该值时,该值是根据当前的 conservatism_co 动态计算的-高效的。
这可能吗,和/或我只是以完全错误的方式去做这件事?