如何建立循環並在子集表中新增列並根據特定列值新增值?大家好,我有一個表子集
我有兩個問題。
1. 如何建立一個循環,將「Ref」列加入到每個子集表中?
2. 另外,建立的列的值是否有可能基於具有特定值的 N 行的最大數量?
例如,要新增的新欄位將為Ref 。列參考值將基於列國家/地區,其中應僅向美國的最高 N 行值加 1。
| 國家 | N 行 | 參考號 |
| 阿根廷 | 4 | |
| 美國 | 0 | |
| 美國 | 5 | 1 |
| 巴西 | 2 | |
| 巴西 | 4 | |
| 加拿大 | 2 | |
愛
自動化和腳本編寫視窗回覆:如何在子表中新增列並根據特定列值新增值?我不確定您對“列子集”的定義是什麼。就是你所指的,所創建的資料表
表=>子集
當選取子集依據時

並為所選變數的每個水平製作一個單獨的表格?
回覆:如何在子表中新增列並根據特定列值新增值?在對錶進行子集化後,如何建立一個循環來在所有子集化的表上新增「Ref」列?
*將重新表述問題
回覆:如何在子表中新增列並根據特定列值新增值?這是執行循環的一種方法的範例。真正的問題是如何取得要循環的表格清單。此範例假設
表=>子集
使用了子集By
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dtSubsetList = dt << Subset(
By( :sex ),
All rows,
Selected columns only( 0 ),
columns( :name, :age, :height, :weight )
);
for each( {table}, dtSubsetList,
table << new column( "Ref");
wait(0);
table:ref[table << get rows where( :age == col max(:age))]=1;
);回覆:如何在子表中新增列並根據特定列值新增值?如果我的數據看起來像這樣怎麼辦? Country 欄位是字元類型,如何取得其最高的 N 行?假設我從美國得到最高的 N 行。從你給的例子來看,我認為它是數字資料類型
| 國家 | N 行 | 參考號 |
| 阿根廷 | 4 | |
| 美國 | 0 | |
| 美國 | 5 | 1 |
| 巴西 | 2 | |
| 巴西 | 4 | |
| 加拿大 | 2 | |
回覆:如何在子表中新增列並根據特定列值新增值?我認為您需要類似的東西
table:ref[table << get rows where( :Country == "America" & :N Rows == col max(:N Rows, :Country))]=1;
我建議你花時間閱讀Scripting Guide,來學習JSL。如果您不熟悉程式設計和至少一種程式語言,我建議您在網路上搜尋「學習如何程式設計」的免費課程。