如何通過腳本將單元格值設置為“缺失”?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一個腳本,用於從大型數字數據集中刪除族外數據點。當發現某個值超出定義的分佈時,則通過使用代碼“columnReference[specificCell] = ”將該值設置為缺失。
我曾經工作得很好,但現在看來腳本不喜歡我將單元格值設置為“。”關於如何將單元格值設置為“缺失”有什麼建議嗎?
回复:如何通過腳本將單元格值設置為“缺失”?我從這個線程中得知您希望以編程方式執行此類操作。 很難給出一般性的指導方針,因為存在太多的可能性。 如果您確實關心效率,您可以分析代碼以查看瓶頸在哪裡:
http://www.jmp.com/support/help/Debug_or_Profile_Scripts.shtml
在用missing替換0的具體情況下,如果你的數據表(dt)中的所有列都是數字連續的,你可以這樣做:
m = dt << GetAsMatrix;
m[Loc(m == 0) ] = .;
dt2 = AsTable(m);
當然,然後您必須修復 dt2 中的列名稱和屬性。
回复:如何通過腳本將單元格值設置為“缺失”?有人建議執行多種此類數據清理操作的哪種方法具有最佳性能嗎?
似乎有很多方法可以完成這些替換,但對於大型數據集,選擇最快的方法可能很重要。
我在 10,000 列 x 750 行的數據集上使用了多個下標方法,花了幾分鐘才用缺失替換 0。
回复:如何通過腳本將單元格值設置為“缺失”?只需使用:
“columnReference[特定單元格] = 空()”
回复:如何通過腳本將單元格值設置為“缺失”?順便說一句,您不需要顯式循環目標行。 您可以通過以下方式使用多個下標簡單地同時將缺失值分配給它們:
cleanColumnRef[壞數據點] = . ;
回复:如何通過腳本將單元格值設置為“缺失”?您可以嘗試模仿手動刪除主菜單(“刪除”)命令。 警告,在運行之前保存文件,因為強制“手動”刪除將刪除前窗口中選擇的任何內容。
使用您的術語但沒有循環的示例:
dt =打開( “$SAMPLE_DATA/大類.jmp” ) ;
壞數據點= [ 1 , 10 ] ;
清洗列參考=柱子( “高度” ) ;
dt <<去(清洗列參考) ;
dt <<選擇行(壞數據點) ;
dt <<將窗口置於前面;
主菜單( “刪除” ) ;
回复:如何通過腳本將單元格值設置為“缺失”?我仔細檢查了被鎖定的列或數據類型錯誤的列。
感謝您的反饋。我正在分析的數據中添加了一份能力報告。我想因為這是引用數據表,所以它不允許我通過腳本刪除單個單元格。然而,它會讓我手動刪除壞數據點。如果我關閉功能報告,那麼我的腳本會再次運行。
似乎應該有一個腳本函數,即使功能報告打開,也可以讓我刪除數據,因為我可以手動執行此操作。
回复:如何通過腳本將單元格值設置為“缺失”?我從日誌中得到的唯一反饋如下。
For( badPt = 1, badPt <= N Row( badDataPoints ), badPt++,
cleanColumnRef[badDataPoints[badPt]] = /*###*/。 /*###*/
);
回复:如何通過腳本將單元格值設置為“缺失”?將缺失值分配給單元格應該很簡單。
也許列已被鎖定,給定公式屬性或設置為字符數據類型?
回复:如何通過腳本將單元格值設置為“缺失”?感覺你的代碼中一定有其他東西發生了變化。 例如,這有效:
dt =打開( “$SAMPLE_DATA/Big Class.jmp” ) ;
值=柱子( dt , “高度” ) <<獲取值;
值[洛克(值> 60 )] = 。 ;
柱子( dt , “高度” ) <<設置值(值) ;
您看到什麼錯誤?