如何使用 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 总是感觉有点像黑客,但它会满足您的需要。