如何使用 JSL 取得整行值?大家好,
我們如何使用 jsl 來取得給定行的整個行值?
自動化和腳本編寫品質和工藝工程回覆:如何使用 JSL 取得整行值?顯然,我所需要做的就是發帖,然後我立即找到了答案。
fr = Col Minimum( Row(), :age );
lr = Col Maximum( Row(), :age );
dt:name[Index( fr, lr )];
//returns {"KATIE", "LOUISE", "JANE", "JACLYN", "LILLIE", "TIM", "JAMES", "ROBERT"}這正是我一直在尋找的。
將 col min 和 max 與 row 一起使用非常簡單,因此可行。
但是,我很好奇是否可以直接在下標中使用 by(age) 參數,我已經在「建立驗證列」中使用了它,這使得它變得更容易做到。
謝謝你,
阿倫
回覆:如何使用 JSL 取得整行值?為資料表新增下標非常方便,但是是否可以使用其中的「by」函數(例如 by( :age ))將所有具有相同年齡的人的姓名拉入列中?
這是一個例子:
我想獲取所有年齡相同的名字並將它們連接在一列中。
接下來常見的步驟之一是透過這些串聯名稱匯總其他欄位。


我已經挖掘並嘗試了多種方法,我認為我只是錯過了一些簡單的東西,但我希望有一種非常簡單的方法可以使用訂閱或類似的方法來做到這一點
dt:name << getvalues(by(age)) 然後將其放入列中或在腳本中使用它。
我嘗試將其作為公式列:
dt[Index( :first_row, :last_row ), {:name}]
每個子表達式都提供了與您的範例相符的正確結果
// fetch a list if character columns are involved.
// notice the matrix is reversing the order
dt[ 4::2, "name"]; // {"JACLYN", "JANE", "LOUISE"}但我無法取得要在列中傳回的實際名稱清單 {"JACLYN", "JANE", "LOUISE"}。
感謝您的任何幫助,
阿倫
回覆:如何使用 JSL 取得整行值?好的!
請注意資料表下標如何根據需要提供清單或矩陣:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << colorByColumn(:sex);
r4Vals = dt[4,0];
Print(r4Vals);
dt << deleteColumns({:name, :sex});
r4Vals = dt[4,0];
Print(r4Vals);
rsc = dt << NewColumn("Row States", Row State);
rsc << copyFromRowStates;
r4Vals = dt[4,0];
Print(r4Vals);
dt << NewColumn("Expression", Expression);
r4Vals = dt[4,0];
Print(r4Vals);回覆:如何使用 JSL 取得整行值?在 JMP 13 中您可以使用數據表下標
dt = Open( "$sample_data/big class.jmp" );
row5 = dt[5, 0];
Show( row5 );<BR />
row5 = {"莉莉", 12, "F", 52, 64};
回覆:如何使用 JSL 取得整行值?如果您只有數字列,則可以利用「GetAsMatrix」。 如果您有字元和數字列,則可以使用“GetAllColumnsAsMatrix”,但您仍然必須處理編碼字元值。 因此,在後一種情況下,定義函數可能會更簡單:
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
getRow =
Function({tbl, rn}, {DefaultLocal},
rowContents = {};
for(c=1, c<=NCols(dt), c++,
InsertInto(rowContents, Column(tbl, c)[rn]);
);
rowContents;
);
Print(getRow(dt, 5));