問題: データベースからデータをロードするスクリプトを実行します。 データ テーブルからすべての数式を削除します。 赤い三角形のメニューを使用してテーブル スクリプトをコピーします。 テーブル スクリプトをスクリプト ウィンドウに貼り付けます。 スクリプトを実行します。 テーブル スクリプトから生成されたテーブルには、異なる列のグループ化があり、列が配置されています (元のテーブルの [列] パネルと、テーブル スクリプトによって作成されたテーブルを並べて表示しているスクリーンショットを参照してください。 参照用に添付されたファイルも参照してください)。

私は当初、これはテーブル スクリプトが列名の先頭の空白を保持していないことが原因ではないかと疑っていましたが、以下のスクリーンショットが示すように、先頭の空白は実際にはテーブル スクリプトの一部であり、テーブル スクリプトから再作成されたテーブルでは考慮されていません。テーブル スクリプト。

列名に空白を含めて、元のデータ テーブルを実際に再作成する方法はありますかそれとも、それは一般的に不適切なスクリプト戦略ですか?
列名に先頭の空白を使用することは決してありませんが (ほとんどの特殊文字も使用しないようにします)、この場合、JMP で有効な列名であるように見えるので、うまくいくはずです。これは New Column のバグだと思います。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
New Column("A", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column(" A", Numeric, "Continuous", Format("Best", 12), Set Values([2]))
);
wait(1);
Column(dt, 2) << Set Name(" A");
wait(1);
dt << New Column(" A");
私の頭に浮かぶ唯一の「迅速な」回避策は、 << Set Name to New Table スクリプトを追加することですが、グループ化が完了する前にこれがトリガーされるかどうかはわかりません
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
New Column("A", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column(" A", Numeric, "Continuous", Format("Best", 12), Set Values([2]), << Set Name(" A"))
);
そのため、最初にスクリプトをクリップボードに取得してからテキストとして取得し、それを変更してから実行する必要があります。
これは、この 1 つの例で動作する非常に簡単な例です。
Names Default To Here(1);
str = JSL Quote(dt = New Table("Untitled",
Add Rows(1),
New Column("A", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column(" A", Numeric, "Continuous", Format("Best", 12), Set Values([2]))
));
new_lines = {};
For Each({line}, Words(str, "\!N"),
If(Starts With(Trim Whitespace(line), "New Column("),
// get column name
col_name = Regex(Trim Whitespace(line), "^New Column\(\!"(.+?)\!",\s", "\1");
// add set name
last_idx = Contains(line, ")", -1);
new_line = Left(line, last_idx - 1) || ", << Set Name(\!"" || col_name ||"\!")),";
Insert Into(new_lines, new_line);
,
Insert Into(new_lines, line);
);
);
old_dt = Eval(Parse(str));
new_dt = Eval(Parse(Concat Items(new_lines, "\!N")));
@jthiありがとう。 空白を先頭に置くのは悪い習慣だと思いました。 このバグを追加または報告できるリストはありますか?
また、あなたが提案した回避策を実装するよりも、スクリプトを書き直して別の列名を付ける方が簡単だと思います。 (実際に回答しようとしたところ、誤って解決策とラベル付けしてしまいました。)いつものように、他の JMP ユーザーを教育するための貴重な情報とたゆまぬ努力に感謝します。 これは非常に役立ちます。
私は通常、バグについて jmp サポートに連絡しています。 この投稿は状況の非常に良い例であるため、これへのリンクを追加することを忘れないでください.
ある種の奇妙な回避策を管理しようとするのではなく、列の名前を変更することは間違いなく (私の意見では) 良い考えです。 いずれにせよ、これらの空白は後で問題を引き起こす可能性があります。