我正在嘗試填寫斜坡_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]
));
如果您不需要公式,您也可以使用連接/虛擬連接。

公式可以從腳本或附加數據表中找到