一連の数式列をあるテーブルから別のテーブルにコピーする必要がよくあります。「複数列プロパティのコピー」を使用するとその作業が簡単になりますが、列名は含まれません。列名が非常に長くなる可能性があるため、これらの列が多数存在する可能性があるため、カット アンド ペーストを使用してもこれを行うには時間がかかります。あるテーブルから別のテーブルにプロパティ (式、名前など) をコピーする簡単な方法はありますか?これを行うためのスクリプトを作成できることはわかっていますが、おそらく何らかのオプションを知らなかったのではないかと思いました。
ジェリー・クーパー、
これはうまくいきました。列パネルから名前をコピーすることについて知りませんでした。
おっしゃるとおり、私はまだ JMP15 を持っていませんが、会社の合併が完了したら入手したいと考えています。
パット
ごめん@pcarroll1 、
おそらくバージョン 15 を使用していないことに今気づきました。これは新しい機能だと思います。
以前のバージョンでもやりたいことはできますが、前述したように、列名では伝わりません。 しかし、あるテーブルから別のテーブルに複数の列名をコピーする方法があります。
数式列を新しいテーブルに貼り付けた後 ([複数列プロパティの貼り付け] を使用)、ソース テーブルに戻り (数式列がまだ選択されていることを確認してください)、[列] セクションのヘッダー バーをクリックします。 「パネル:

Ctrl-C を押して列名をコピーします。次に、宛先テーブルに戻り、新しい数式列がまだ選択されていることを確認し、列ヘッダーをクリックし、Ctrl-V を押して列名を貼り付けます。 もちろん、これを行う前に、どちらのテーブルの列の順序も変更していないことを確認する必要があります。変更しないと、列の名前が正しく付けられません。追加の手順がいくつかありますが、長い名前を大量に再入力するほど難しくはありません。
やあ@pcarroll1 、
ソーステーブルからコピーする数式列を選択する場合は、そのうちの 1 つのヘッダーを右クリックし、[列のコピー] を選択します。次に、宛先テーブル データの右側にある最初の空の列のヘッダーを右クリックし、[列の貼り付け] を選択します。これで目的のものが得られると思います。ところで、宛先テーブルの既存の列を右クリックすると、その列の直後に新しい数式列が挿入されます。
OK、急いでやったよ!
この操作では、列のプロパティは宛先に引き継がれません。 データ値と列属性のみ。
列をコピーするのではなく、単純なドラッグ (修飾キーなし) で、あるテーブルから別のテーブルに列を移動します。
ソース データ テーブルで選択したデータ列を右クリックし、[列プロパティのコピー] または [列のコピー] を選択することもできますが、この方法では値はコピーされません。
したがって、欲しいものをワンステップで手に入れる簡単な方法はないと思います。 再利用する列が多数ある場合は、スクリプトが最適な方法である可能性があります。 UI を通じて多くの機能があることを説明しようとしました。
私はアドインを使用して以下のスクリプトを Cols メニューに保存しており、実行したことを視覚的に再作成するスクリプトを作成するときと、あるテーブルから別のテーブルに列をコピーするときの両方で、常にそれを使用しています。ソーステーブルの列を選択し、このスクリプトを実行し、ターゲットデータテーブルを選択し、新しいスクリプトウィンドウを開き、クリップボードに保存した内容を貼り付けて、「実行」をクリックします。
Names default to here(1);
ColumnList = Current Data Table() << Get Selected Columns();
ScriptOut = "";
for( i = 1, i <= n items(ColumnList), i++,
ThisScript = Char(Column( Current Data Table(), ColumnList[i] ) << Get Script) || ";";
ThisScript = substitute( ThisScript, ", Set Selected", "" );
ScriptOut = ScriptOut || If( i > 1, "\!N", "" ) || ThisScript;
);
Set clipboard( ScriptOut );
クリップボードに保存されたコード例:
New Column("Sepal length Lagged", Numeric, "Continuous", Format("Best", 10), Formula(Lag(As Column("Sepal length"), 1)));
New Column("Sepal width Lagged", Numeric, "Continuous", Format("Best", 10), Formula(Lag(As Column("Sepal width"), 1)));
New Column("Petal length Lagged", Numeric, "Continuous", Format("Best", 10), Formula(Lag(As Column("Petal length"), 1)));
New Column("Petal width Lagged", Numeric, "Continuous", Format("Best", 10), Formula(Lag(As Column("Petal width"), 1)));