如何在表達式中引用具有復雜名稱的列初級 JSL 腳本編寫者在這裡...
我想創建一個腳本來刪除任何列中缺少數據的任何行。現在,如果我重命名列,它將像這樣工作:
clean_dt << selectWhere(IsMissing ( :THK ) ) << 刪除行;
問題是,我希望這個腳本是動態的,並且能夠處理我給它的任何列的任何名稱,並通過列號引用它。 假設列名像這樣複雜
步驟::測量::數據::THK:原始(平均值)
我不想每次都重命名我的專欄...... 我已經嘗試了幾次我認為“應該”有效的事情的迭代,但它們沒有,例如
clean_dt << selectWhere(IsMissing(專欄(8) )) << 刪除行;
或者
clean_dt << selectWhere(IsMissing(:步驟::數據::THK:原始(平均值) )) << 刪除行; (列名過於復雜且含有特殊字符)
每次都會出現此消息錯誤
在訪問或評估 'Is Missing' 、Is Missing/*###*/(Column( 8 )) 時,參數應為數字{1}
回复:如何在表達式中引用具有復雜名稱的列謝謝,這有效! 從這裡開始,應該很容易使用 i 作為列索引在循環中傳遞表達式回复:如何在表達式中引用具有復雜名稱的列使用“選擇位置”消息時,條件需要基於當前行,因為 JMP 將查看每一行以查看該行是否滿足條件。
由於 Column 函數實際上返回對整個列的引用,因此當您在 SelectWhere 消息中使用 Column 函數時,需要包含當前行的下標。 這可以通過添加下標 [Row()] 或簡稱為 [] 來完成。 見下文。
dt << Select where( Is Missing( Column( 8 )[] ) );
當您想要使用帶有特殊字符的列名時,可以使用帶有列名字符串的名稱解析器。 如果該字符串需要是變量,則需要使用 Column 函數。
dt << Select Where( Is Missing( :Name( "Step::Data::THK:Raw (Mean)" ) ) );
或者
str = "Step::Data::THK:Raw (Mean)";
dt << Select Where( Is Missing( Column( str )[] ) );