我正在尝试填写斜坡_1和Intercept_1(1000 行)从连续下坡和拦截(36 行) , 分别基于 if循环 2(1000 行)火柴周期 3 (36 行)
你能建议一个要输入的公式吗斜坡_1和拦截_1 ?

你可以这样做:
If( Row() == 1, :Slopes, :Cycle 2 == Lag( :Cycle 2 ), Lag( :Slopes_1 ), :Slopes )
举个例子:
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
dt << New Column( "height_1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( If( Row() == 1, :height, :age == Lag( :age ), Lag( :height_1 ), :height ) )
);
有很多方法可以做到这一点,这里是一种使用关联数组的方法:
Names Default To Here(1);
// Sample data
dt = New Table("Untitled",
Add Rows(9),
New Column("C3", Numeric, "Continuous", Format("Best", 12), Set Values([1, 2, 3, ., ., ., ., ., .])),
New Column("S",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([0.11, 0.12, 0.13, ., ., ., ., ., .])
),
New Column("I",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1.1, 1.2, 1.3, ., ., ., ., ., .])
),
New Column("C2", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 2, 3, 3, 3])),
New Column("S1", Numeric, "Continuous", Format("Best", 12), Set Values([., ., ., ., ., ., ., ., .])),
New Column("I1", Numeric, "Continuous", Format("Best", 12), Set Values([., ., ., ., ., ., ., ., .]))
);
wait(1);
// Formulas start
Column(dt, "S1") << Formula(
As Constant(
aa_slope_c3 = Associative Array(Eval List(:c3 << get values), Eval List(:s << get values));
);
aa_slope_c3[:c2];
);
Column(dt, "I1") << Formula(
As Constant(
aa_intercept_c3 = Associative Array(Eval List(:c3 << get values), Eval List(:i << get values));
);
aa_intercept_c3[:c2];
);
// If data is always like this, can be simplified to
dt << New Column("ss", Numeric, Continuous, Formula(
:S[:C2]
));
dt << New Column("ii", Numeric, Continuous, Formula(
:I[:C2]
));
如果您不需要公式,您也可以使用连接/虚拟连接。

公式可以从脚本或附加数据表中找到