在換位的背景下嘗試我有一個腳本,可以對從 SQL 查詢獲得的一些資料執行轉置。我想在腳本中添加一些寬恕,查詢中的確切列可能會有所不同。我目前的腳本要求需要存在一系列列才能正常運作,並且我想以某種方式應用 Try() 功能來適應 SQL 查詢中的差異。
我做了一個練習,將轉置包含在 try 語句中,但失敗了。
自動化和腳本編寫回覆:在換位的背景下嘗試您哪個部分有問題? SQL 查詢會因列名變更而失敗?或者 JSL 腳本因未獲得所需的列而失敗?如果出現問題該怎麼辦?
回覆:在換位的背景下嘗試SQL 會按預期提取數據,但運算符可能不包含 JMP 期望轉置的所有列。然後,問題出現在 JMP 端,其中指定了明確列,但結果卻遺失了。
JMP 日誌表明
在「列」的存取或評估中找不到列,錯誤參數 ({:SAMPLE})。
回覆:在換位的背景下嘗試那麼這種情況該怎麼辦呢?停止程式執行?跳過腳本的那部分?嘗試取得正確的列?
回覆:在換位的背景下嘗試我只想在實際出現的列上執行,而不會因為缺少的列而失敗。我最終需要一個能夠容忍 SQL 查詢中的差異的腳本,因為許多操作員需要使用它並且會發生差異。我的一個優點是轉置列(:VALUE) 和標籤列(:PARAMETER) 具有固定標題,我在此處和其他地方找到的資訊的一些幫助下深入研究了這一點,我得到了下面的腳本,看起來去工作。
已解決:刪除清單中的元素 - JMP 使用者社區
感謝您的協助。
dt = Current Data Table();
// List available columns
by_col_names = dt << get column names( "String" );
show(by_col_names);
// Remove Transpose and Label columns from list
delcols = {"VALUE", "PARAMETER"};
For( i = 1, i <= N Items( delcols ), i++,
Remove From( by_col_names, As List( Loc(by_col_names, delcols[i] ) ) );
);
// Transpose only if valid columns exist
If (N Items(by_col_names) > 0,
dt2 = dt << Transpose(
Columns(:VALUE),
By(
by_col_names
),
Label( :PARAMETER ),
Output Table( "Transpose of dt_data" )
);
);