参照を含む列を削除するやあ
列を削除するスクリプトを書きました。ただし、「式によって別の列が参照されている間は、この列を削除できません」というエラーが発生します。 」
数式はありませんが、「参照の削除」オプションを手動で使用すると、列を手動で削除できます。
「Remove Refs」を使用するには、スクリプトでこの関数を使用する方法を学ぶ必要があります。
JMP16.1.0を使用しています
高度な統計モデリング自動化とスクリプト作成消費者および市場調査データのブレンディングとクリーンアップRe: 参照のある列の削除私が JMP サポートに報告した問題は現在バグとして公開され、R&D に報告されています。
数式を対話的に削除できるため、<< Delete Formula の代わりに << Delete property("Formula") を使用できるというアイデアを得ました。これは機能するようですが、集計テーブルを作成するときは数式に細心の注意を払います。非常に奇妙な相互作用があるかもしれないので
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
f1 = Column(dt_summary, "concat_col") << Get Formula;
show(f1);
Column(dt_summary, "concat_col") << Delete Formula;
f2 = Column(dt_summary, "concat_col") << Get Formula;
show(f2);
,
show(exception_msg);
);
Try(
f3 = Column(dt_summary, "concat_col") << Get Formula;
show(f3);
Column(dt_summary, "concat_col") << Delete Property("Formula");
f4 = Column(dt_summary, "concat_col") << Get Formula;
show(f4);
dt_summary << Delete Column("name");
,
show(exception_msg);
);
/*
Close(dt_summary, no save);
Close(dt, no save);
*/Re: 参照のある列の削除問題は概要テーブルに関連していますか?
今日、数式を削除しようとしたときに集計表で奇妙な動作が起こることに気づきました。 現在この問題をテスト中であり、適切な例を示した後、JMP サポートにチケットを送信する予定です。 準備ができたら、ここに例を投稿することもできます。
編集:
今日私が遭遇した問題に関する簡単な例を次に示します (私は数式をほとんど使用しません...)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//create some formula colums
dt << New Column("deduction", Numeric, "Continuous", Format("Best", 12), Formula(:height - :weight));
dt << New Column("concat_col", Character, "Nominal", Formula(:name||"_"||Char(:name)));
dt_summary = dt << Summary(
Group(:name,:sex, :concat_col),
Mean(:height),
Mean(:deduction),
Freq("None"),
Weight("None"),
Link to original datatable(0)
);
Try(
dt_summary << Delete Column("name");
,
show(exception_msg);
);
Try(
f = Column(dt_summary, "concat_col") << Get Formula;
show(f);
Column(dt_summary, "concat_col") << Delete Formula;
,
show(exception_msg);
);
/*
Cannot delete column "name" while it is referenced by the formula of column "concat_col".
Removing a formula leaves the data unchanged. Removing references replaces each reference with an empty value. These effects are permanent and cannot be undone.
f = :name || "_" || Char(:name);
exception_msg = {"Column concat_col has no formula"(1, 2, "Delete Formula", Delete Formula /*###*/)};
*/
左側の列リストに数式が表示されず、数式パネル ボックスにも数式が表示されません。

[数式の編集] をクリックすると、数式が表示されます。 そして、連結の "_" を " " に変更すると、数式が消え、列がロックされ、データテーブルの値が変更されます。


この場合の簡単な修正方法は、集計テーブルを作成する前に、最初に元のデータ テーブルからすべての数式を削除することですが、非常に奇妙な動作をする可能性があるため、数式 (値のみ) を集計テーブルにコピーすべきではないと思います。式に応じて。
編集2:
説明したこの問題/機能に関するチケットを JMP サポートに送信しました。
Re: refs を含むカラムの削除非表示の数式列があるのかな? 実際に数式列がない場合は、バグのように思えます。テーブルをテクニカル サポートに送信すると、問題を修正できる可能性があります。
Re: 参照のある列の削除一歩下がって、使用しているアプローチを検討してみるとよいでしょう。 この問題を解決するのではなく、最初から回避することも考えられます。 たとえば、他のデータ列で数式を使用しているのはなぜですか? なぜ列を削除したいのですか?
数式をまったく使用しない他の方法を使用してデータ列にデータを入力できる場合もあります。 JMP のスクリプト作成時に式を使用する唯一の理由は、データ テーブルが変更されたときにデータ列を更新する必要がある場合です。 他にも方法はあります。
スクリプトを投稿していただけますか? それともスクリプトが実行するステップを説明しますか?
Re: 参照のある列の削除サンプルデータテーブルを提供してもらえますか?