如何使用 JSL 將缺失值的單元格中的值更改為零?拆分錶格時,我最終會在多列中出現缺少值的單元格。我想將這些值更改為 0。行數和拆分列數將根據通過 SQL 查詢提取的數據而有所不同。如何迭代這些選定的列並將此更改從缺失值更改為 0。
謝謝
回复:如何使用 JSL 將缺失值的單元格中的值更改為零?同意在這種情況下這是沒有必要的,但它是一個非常有用的模式。採取任意複雜的 JSL 片段。特別是在難以對組成組件進行參數化的情況下。用脫字符號 (^var^) 將變量括起來,然後將整個變量粘貼到“評估-解析-評估插入”模式。問題解決了。
回复:如何使用 JSL 將缺失值的單元格中的值更改為零?謝謝,托馬斯。效果很好!
回复:如何使用 JSL 將缺失值的單元格中的值更改為零?您可以手動分三步完成:
選擇列
選擇標準化屬性,然後重新編碼。
將所有 . 重新編碼為 0。
如果你想通過jsl來做,你可以這樣做:
dt=current data table();
colnames = dt << get column names( numeric,string );
For( i = 1, i <= N Items( colnames ), i++,
column(dt,colnames[i])[dt<<GET rows="" where=""></GET>
親切的問候,托馬斯
回复:如何使用 JSL 將缺失值的單元格中的值更改為零?這是相同的想法@cwillden但不必使用 Eval(Parse())
Names Default To Here( 1 );
dt = Current Data Table();
numericColumnNames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( numericColumnNames ), i++,
Try(
Column( dt, numericColumnNames[i] )[dt << get rows where(
Is Missing( (As Column( dt, numericColumnNames[i] )) )
)] = 0
)
);
回复:如何使用 JSL 將缺失值的單元格中的值更改為零?嘗試這樣的事情:
dt = Current Data Table();
cols = dt << Get Selected Columns();
For( i = 1, i <= N Items( cols ), i++,
Eval( Parse( Eval Insert( "^cols[i]^[dt << Get Rows Where(Is Missing(^cols[i]^))] = 0" ) ) )
);
我最終使用了 Eval-Parse-Eval Insert,因為 Is Missing 函數不喜歡 Is Missing(cols[i]) 或 Is Missing(Column(cols[i])) 之類的東西。使用 Eval-Parse-Eval Insert 總是感覺有點像黑客,但它會滿足您的需要。