<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我正在尝试创建一组代表渐变函数传播的列。 为此,我使用以下公式。 虽然公式语法似乎正确,但该公式不适用于665之前的行。 有任何建议或解决方法吗?我已经评论了可疑的错误。 我正在使用JMP11。
谢谢!
//传播斜坡函数:
dt =新表(“公式不工作”,
添加行(25000),
新栏目(“RAMP 01”,
数字,
连续,
公式(If(行()<601,0,If(行()<4441,滞后(:RAMP 01,1)+ 1/3840,If(行()<5001,1,滞后(:RAMP 01,5000) )))))
)
新栏目(“RAMP 02”,
数字,
连续,
式(
如果(
Row()<601,:RAMP 02 [601,Empty()],
Row()== 601,:RAMP 02 [4377,Empty()],//我怀疑这个下标函数不起作用,虽然语法正确且Row(4377)有值。 有任何想法吗?
行()<665,滞后(:RAMP 02,1)+ 1/3840,
行()<4441,滞后(:RAMP 01,64),
Row()<5001,:RAMP 02 [4440,Empty()],
滞后(:RAMP 02,5000)
)
)
)
新栏目(“RAMP 03”,
数字,
连续,
式(
如果(
Row()<601,:RAMP 03 [601,Empty()],
Row()== 601,:RAMP 03 [4377,Empty()],
行()<665,滞后(:RAMP 03,1)+ 1/3840,
Row()<4441,Lag(:RAMP 02,64),
Row()<5001,:RAMP 03 [4440,Empty()],
滞后(:RAMP 03,5000)
)
)
)
新栏目(“RAMP 04”,
数字,
连续,
式(
如果(
Row()<601,:RAMP 04 [601,Empty()],
Row()== 601,:RAMP 04 [4377,Empty()],
行()<665,滞后(:RAMP 04,1)+ 1/3840,
Row()<4441,Lag(:RAMP 03,64),
Row()<5001,:RAMP 04 [4440,Empty()],
滞后(:RAMP 04,5000)
)
)
)
新栏目(“RAMP 05”,
数字,
连续,
式(
如果(
Row()<601,:RAMP 05 [601,Empty()],
Row()== 601,:RAMP 05 [4377,Empty()],
行()<665,滞后(:RAMP 05,1)+ 1/3840,
Row()<4441,Lag(:RAMP 04,64),
Row()<5001,:RAMP 05 [4440,Empty()],
滞后(:RAMP 05,5000)
)
)
)
新栏目(“RAMP 06”,
数字,
连续,
式(
如果(
Row()<601,:RAMP 06 [601,Empty()],
Row()== 601,:RAMP 06 [4377,Empty()],
行()<665,滞后(:RAMP 06,1)+ 1/3840,
Row()<4441,Lag(:RAMP 05,64),
Row()<5001,:RAMP 06 [4440,Empty()],
滞后(:RAMP 06,5000)
)
)
)
);
你好MS,
谢谢您的帮助。 我无法单独使用脚本来完成该功能。 我最终通过编辑带注释的行来引用另一列,然后将其更改回来,使公式工作。 之后它起作用了。
看起来JMP以行顺序评估公式,并且在例如行601的第一次评估时,行602中的单元格中没有(尚未)任何值。
重新运行公式应该这样做:
等待 ( 1 ) ; //让第一次评估完成!
DT << 重新运行公式 ;