Установка значения для динамически выполняемой функции в R - PullRequest
0 голосов
/ 30 апреля 2020

Для лабораторных данных измерения обычно обеспечиваются пределами обнаружения / отчетности и доверительными интервалами. Например, у меня может быть измерение концентрации магния в воде, где минимальное отчетное значение равно 5, и я получил два измерения, первое - 10, а второе - «<5» (ie. Ниже отчетного значения). Как конечный пользователь, есть моменты, когда вы хотите, чтобы «<5» рассматривалось как «5», иногда как «0», иногда как «2.5». </p>

Как я подхожу к этой проблеме, путем создания класса S3 с атрибутом LRL (нижний предел отчетности). Я хотел бы, чтобы пользователь мог сделать следующее:

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 -ffective", а не чем число. Затем, когда какая-то другая функция пытается получить доступ к значению, значение динамически вычисляется на основе текущего conservatism_co-эффективного.

Возможно ли это, и / или я просто делаю это совершенно неправильно способ

...