列を変数としてループする問題dtというテーブルがあり、多くの列があります。 特定の列に欠落しているものを見つけて、「N」を入力したいと思います。 以下は私のスクリプトですが、col[i]変数が機能しません。column(dt、col [i])をcolumn(dt、col [i])に置き換えようとしましたが、機能しません。 ただし、as column(dt、col [i])を実際の列名(例::A)に置き換えると、スクリプトは機能します。 私の間違いはどこにありますか?
col={"A", "B", "C", "D", "E"};
For( i = 1, i<= N Items( col ), i++,
empty_rows = dt << get rows where (is missing(as column(dt, col[i])));
if (nrows(empty_rows) > 0,
as column(dt, col[i])[empty_rows] = "N";
);
);スクリプティングRe:列を変数としてループする問題コードは正常に機能します。与えられたデータテーブル

コードのコピーを実行します
names default to here(1);
dt=current data table();
col={"A", "B"};
For( i = 1, i<= N Items( col ), i++,
empty_rows = dt << get rows where (is missing(as column(dt, col[i])));
if (nrows(empty_rows) > 0,
as column(dt, col[i])[empty_rows] = "N";
);
);
その結果、次のようになります

発生している可能性のある問題は、A、B、C、D、E列が数値の場合、セルに文字値を配置できないことです。JMPはそれを欠落している値「。」に変換します。
Re:列を変数としてループする問題こんにちはジム、
ジムに助けてくれてありがとう。
何度も試しましたが、まだ機能していません。コードの検証後。 JMPを閉じて再開することにしました。 今回は動作しています。 キャッシュの問題が原因なのかしら? JMPを再起動せずにjmpキャッシュをクリーンアップする方法はありますか? 私の仮定は間違っているかもしれませんが、誰でも提案を与えることができれば役に立ちます。