使用特定的行值在帶有 JSL 的公式中使用我想做一些我很久以前在 VB 中學到的東西,但我正在努力使用 JMP 腳本語言。 我是 JMP 的新手。
我想在公式中運行 For 循環但使用元胞數組。
例如,我知道我可以按如下方式引用一列: j = Column ("a");
如果我然後說 j[4] = 77 + 2;我將在第 4 行的“a”列中得到值 79。
但是,如果我想在列“a”上運行一個循環,例如 For(i=1,i<=20,i++,一些公式使用j[i]);
在附件中,我想將列 B 的行 [1] 與列 C 的第 1 至 5 行一起使用。 然後,B 列行 [6] 和 C 列的第 6 到 10 行。 我的目標是使用 Column-A 中的序列作為標識符,因此每次序列的值為 1 時,我將此值保留 5 次後續使用的公式,其中進入 Column-D 的內容取決於對內容執行的算法B列和C列。 (例如Column-D=Column-B-Value + Column-C-Value。)見附件,看圖明白我的意思。
任何幫助都會很棒,非常感謝。
回复:在 JSL 的公式中使用特定的行值最後,我花了一些時間才弄清楚 JMP 腳本的工作方式。 附件顯示了我所做的,這對我有用。 (這個例子偏離了我用來開始這個討論的簡單例子。)
如果有人對如何以不同方式處理此類問題有任何提示,請發表評論。 在基本 VB 編程中使用 for 循環和 if 條件多年,並且是 JMP 的新手,這意味著我可能需要指導以更好地理解如何處理 JMP 腳本。
回复:在 JSL 的公式中使用特定的行值謝謝你,吉姆!
回复:在 JSL 的公式中使用特定的行值有問題嗎?
回复:在 JSL 的公式中使用特定的行值如果過去 30 天的平均值比目標值多 +1 sigma,我正在使用此腳本將單元格塗成黃色
為了(一世= 1個,一世<= N行( dt ) ,一世++,
如果(柱子( dt , “平均30天” )[一世] > (((柱子( dt , “目標” )[一世]) +柱子( dt , “標準” )[一世] ) ,
柱子( dt , “平均30天” ) <<顏色細胞( 9 , {一世} )
)
) ;
回复:在 JSL 的公式中使用特定的行值以下公式適用於您附加的示例
targetrow = (Row() - :Name( "Column-A" )) + 1;
:Name( "Column-B" )[targetrow] + :Name( "Column-C" );
請記住,公式將始終遍歷所有行,而函數 Row() 將始終為您提供當前正在處理的行。 在 JMP 中使用公式時,需要查看在查看給定行時需要哪些結果。 它是與 VB 不同的範例
這是另一個版本,執行您正在尋找的 For 循環
If( :Name( "Column-A" ) == 5,
For( i = Row() - 4, i <= Row(), i++,
:Name( "Column-D" )[i] = :Name( "Column-B" )[Row() - 4] + :Name( "Column-C" )[i]
)
);
// The last value calculated will be the value for the current row,
// so it needs to be handled as a special case
:Name( "Column-B" )[Row() - 4] + :Name( "Column-C" )[Row()];
我想從技術上講,你可以近似一個 VB 世界,如果繞過所有行的所有處理,直到檢測到最後一行,然後你可以返回並在程序控制下循環遍歷所有行.... .這看起來工作量很大
dt=current data table();
If(Row()==N Rows(dt),
<DO whatever="" processing="" you="" want="">
);
<PROCESS for="" the="" current=""></PROCESS></DO>