0

我正在CRF为一个主项目使用 REDCap,但是我遇到了一些编程问题。

我正在尝试为某些时间间隔建立一个方程式,以下示例是针对体温(以摄氏度为单位)的。我正在尝试将评分模型集成到我的一种乐器中。如果温度是36-38.4它应该给出0分数,如果它在之间32-33.9它会给出2分数等。我的问题是一个非常低的数字和一个非常高的数字都给出了4分数,我无法弄清楚如何编程方程。

这就是 REDCap 使用条件逻辑的方式:if (CONDITION, value if condition is TRUE, value if condition is FALSE).

这是一个有效的方程式,例如:

if([cpis_temp] > 35.9,if([cpis_temp] > 38.4,if([cpis_temp] >=39, 2, 1),0),2)

现在我想再做一个,但有更多的间隔,但我无法让方程起作用,这些是间隔:

 0 if: 36-38.4

 1 if: 34-35.9 or 38.5-38.9

 2 if: 32-33.9

 3 if: 30-31.9 or 39-40.9

 4 if: <=29.9 or >=41

到目前为止,这是我设法制定的:

if([cpis_temp]>1,if([cpis_temp]>20,if([cpis_temp]>=30,if([cpis_temp]>=32,if([cpis_temp]>=34,if([cpis_temp]>=36,if([cpis_temp]=>38.5,if([cpis_temp]>=39,if([cpis_temp]>=41,4,0),3),1),0),1),2),3),4),0)

感谢一些输入和帮助!

4

1 回答 1

0

我建议从这个连续变量的一端开始并从那里编码:

if([cpis_temp] < 30, 4,
  if([cpis_temp] < 32, 3,
    if([cpis_temp] < 34, 2,
      if([cpis_temp] < 36, 1,
        if([cpis_temp] < 38.5, 0,
          if([cpis_temp] < 39, 1,
            if([cpis_temp] < 41, 3, 4)
          )
        )
      )
    )
  )
)

如果您可以要求本地管理员为您安装 JavaScript 注入器外部模块,您可以更轻松地在 JS 中编写代码并滚动您自己的函数以从输入温度返回类别。

于 2021-09-21T10:21:06.647 回答