JSL 使用變數列的最大值建立新的總計表你好,
一段時間以來,我很喜歡在這些討論頁面上閱讀和尋找解決方案,但現在一直在摸索解決這個問題。
我有一個資料表,其中提供了由機器自動產生的可變列數,其中前 14 列始終是相同的識別資訊。 其他欄位(從 15 開始)是數字連續數據,其中列名稱總是會有所不同。
問題是我正在嘗試自動建立一個匯總表,該表將按其標識資訊對資料進行分組,並且每個資料列都有一列最大資料。
對於不同數量的資料列和不同的列名稱,是否可以迭代每一列? 例如 for 迴圈將所有 Max 值放入總計表中? 我受到限制,無法命名每次拉取的不同列名稱的所有列 b/c,但可以肯定地說,第 14 列之後的每一列都需要找到的最大值。
這是我一直在嘗試編輯的 JSL 腳本,但在生成 Max 列時遇到了死胡同。
sumdt = table << Summary(
Group(:NAME,:ID),
(Max(Column(table, 15:154)), // having issue on this line
Output Table Name("Summary Max Values")
);
感謝您對我的問題提出的任何意見!
資料混合與清理回覆:JSL 使用變數列的最大值建立新的總計表在最新版本的 JMP 下,程式碼運作良好。 謝謝!
回覆:JSL 使用變數列的最大值建立新的總計表您好,感謝您的程式碼。 在這裡我發現我只能得到第一個數字列的最大值,高度。 請查看附件。 我猜 Max 只是對列表的第一個值起作用。 你能幫我知道為什麼嗎?
回覆:JSL 使用變數列的最大值建立新的總計表非常感謝@tx尼爾森
那是完美的。 由於我知道要刪除哪些列,因此 Remove from() 函數正是我所需要的。
這基本上是完全滿足我需要的程式碼:
Names default to here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNamesList = dt << get column names( continuous, string );
Remove From(colNamesList, 1,2 ); //removes first two columns that I don't want evaluated
sumdt = dt << summary(
Group( :Sex, :Age ),
max( colNamesList ),
Output Table( "Summary Max Values"),
Link to Original Data Table( 0 )
);
回覆:JSL 使用變數列的最大值建立新的總計表建立 colNamesList 後,您可以使用 Remove From() 函數刪除清單中的特定行,然後將清單縮減為所需的列後,您可以使用它來產生總計表。
有關Remove From() 函數的定義和範例,請參閱腳本索引條目
回覆:JSL 使用變數列的最大值建立新的總計表謝謝@tx尼爾森,
這部分解決了我的問題。
我的原始資料表包含我不想分析最大值的日期列,基本上遇到的問題是我不想計算前 14 列的最大值,無論其資料類型為何。
有沒有辦法忽略前 14 列,或更容易建立一個新表,先刪除不需要的列,然後再傳遞給總表?
謝謝,
格洛麗亞
回覆:JSL 使用變數列的最大值建立新的總計表以下是使用 Big Class 範例資料表執行所需操作的範例。
Names default to here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
colNamesList = dt << get column names( continuous, string );
sumdt = dt << summary(
Group( :Sex, :Age ),
max( colNamesList ),
Output Table( "Summary Max Values"),
Link to Original Data Table( 0 )
);
