JSL を使用して欠損値のあるセルの値をゼロに変更するにはどうすればよいですか?テーブルを分割すると、複数の列に欠損値のあるセルができてしまいます。これらの値を 0 に変更したい。行と分割された列の数は、SQL クエリを介して取り込まれるデータに基づいて異なります。これらの選択された列を反復処理し、この変更を欠損値から 0 にするにはどうすればよいですか?
ありがとう
Re: JSL を使用して欠損値のあるセルの値をゼロに変更するにはどうすればよいですか?この例では必要ではありませんが、非常に便利なパターンであることに同意しました。JSL の任意の複雑な部分を取り上げます。特に、構成コンポーネントをパラメータ化するのが難しい場合。変数をキャレット (^var^) で囲み、" の中に全体を貼り付けます。 Eval-Parse-Eval Insert」パターン。問題が解決しました。
Re: JSL を使用して欠損値のあるセルの値をゼロに変更するにはどうすればよいですか?ありがとう、トーマス。よく働く!!
Re: JSL を使用して欠損値のあるセルの値をゼロに変更するにはどうすればよいですか?手動で 3 つの手順で実行できます。
列を選択する
属性の標準化を選択してから再コーディングします。
すべての . を 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>
よろしく、 トーマス
Re: 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
)
);
Re: 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" ) ) )
);
Is Missing 関数は Is Missing(cols[i]) や Is Missing(Column(cols[i])) のようなものを好まなかったため、Eval-Parse-Eval Insert を使用することになりました。Eval-Parse-Eval Insert の使用は常に少しハックのように感じますが、必要なものが得られます。