你好,
我有一個項目,我的目的是從資料表 (1) 中提取每列的平均值、最大值和最小值,並將結果寫入新表 (2)。
我找到了這部分程式碼,它似乎適用於少數列,但不適用於所有列。我有大約 300 個列,但只有其中 20 個的結果。
For( i = 1, i <= N Col( dt ), i++,
If (:Trial[i] =="TrialName",
If( Column( dt, i ) << get data type == "Numeric",
Write( "\!n", Column( dt, i ) << get name );
Write( Column( dt, i ), "\!nMin: ", Col Min( Column( dt, i ) ) );
Write( "\!nMax: ", Col Max( Column( dt, i ) ) );
Write( "\!nAverage: ", Col Moving Average( Column( dt, i) ) );
Write ("\!n");
)
)
); 我可以在日誌中看到結果,但無法將結果寫入新表 (2) 的右列。
看更多...這段程式碼顯示如下:
第 1 欄
最少:10
最多:50
平均:30
這是我想要的範例:
表 1: 第 1 欄: 第 2 欄: --> 表 2 -----> 第 1 欄: 第 2 欄:
10 45.2 最大:50 最大:52.4
20 48.3 分鐘 : 10 分鐘 : 18.3
30 36.7平均:30 平均:40.18
40 52.4
50 18.3
--->
1.我認為我的所有數據都不被視為數字,因此JMP不想計算最小值、最大值和平均值,但我沒有找到一種方法來「強制」數據的類型。
2. 我沒能把我的結果寫在決賽表(2)的欄位中。
我不要求完整的答案,只要求提示,因為我真的被困住了。
謝謝 !
感謝大家的提示! 我將在下周處理這個問題。
我已經閱讀了所有內容,我不知道可以使用 JMP 預設來做到這一點。
我的觀點是運行一個腳本以獲得最終結果,以便每個人都能輕鬆使用。 我想我可以編寫您向我展示的步驟。
謝謝你 !
您可以使用 JMP 以交互方式獲得您想要的結果。 我將使用 Sample Data 文件夾中的 Fitness 進行說明。 假設數據表是打開的。
第 1 步:計算統計數據
- 推出分配具有所有感興趣的數據列的平台(年齡通過最大脈衝).
- 右鍵單擊匯總統計表格並選擇製作組合數據表.
第 2 步:按照您想要的方式重新排列結果。
- 選擇表格 > 拆分. 選擇是列並單擊拆分. 選擇第 2 欄並選擇拆分列. 選擇保留全部. 點擊好的.




我的意思只是為了說明一個快速的交互式過程。 它可以在腳本中捕獲為@txnelson建議。 它可以根據需要在每個步驟進行定制。
您描述的項目可以使用內置 JMP 平台之一在 JMP 中生成。一旦平台以交互方式運行,運行它的 JSL 就可以直接從 JMP 獲得。我建議您採用不同的解決方案。
下面是他運行平台後的開始數據表和結果數據表。


要寫入其他表,您可以使用其中的一些 Add Rows() 或 New Column()。 Write() 只會將值打印到 JMP 日誌中。 然後還有數據表下標,您可以使用 Tabulate() 或 Summary() 來計算統計數據(甚至可以將 Distribution 與 make into datatable 結合使用)。
對於“強制”值是數字(小心這一點,因為這會導致數據丟失)你可以嘗試使用 << Set Data Type("Numeric")
有關函數的更多信息,請參閱 JMP 幫助菜單中的腳本索引