JMP 14 で列を複製する最速の方法がわかりません。
同じ情報 (データ、メタデータ、式) ですが、ヘッダーが異なります (列名のコピーなど)。
このコードのスニペットは、現在選択されている列の名前を返します。
colName = (current data table() << get selected columns)[1];
これを使用している人のための参考までに - 私はこの関数を定期的に使用していますが、より大きなデータテーブル(>100k行)でjmpをハングさせました。徹底的にデバッグしたわけではありませんが、ここで列スレッドのクローンを作成したことはわかりました(基本的に同じですが、スクリプトの char() 変換と置換がないことを除いて、代わりに式を使用して名前を設定しています)は最大 5 倍高速であり、ハングを引き起こしている特殊なケースで停止しないことを願っています。それに基づいたものを使用するようにアドインを切り替えていますが、クラッシュする可能性が低いことを願っています。
https://community.jmp.com/t5/Discussions/clone-a-column/td-p/15644
最も簡単な方法は、eval(:col << Get Script) を使用することです。列のコピーを取得し、最後に整数を付けて一意の名前を付けます。操作を実行するテーブルが現在のテーブルであることを確認する必要があります。
次に、スクリプトで使用できる便利な関数を示します。この関数を使用すると、結果として得られる新しい列に名前を付け、データ テーブルを指定できます。唯一必要な引数は最初の引数、colname です。データ テーブルを指定することもできますが、それ以外の場合は Current Data Table() が想定されます。名前を指定しない場合は、元の列名 + " - Copy" が返されます。
Names Default to Here(1);
DupCol = function({colname, new = "", dt = Current Data Table() },
col = Column(dt, colname);
if(IsMissing(new), new = colname||" - Copy");
col_script = char(col << Get Script);
col_script = substitute(col_script, "New Column", "dt << New Column");
col_script = substitute(col_script, colname, new);
eval(parse(col_script));
);
Football サンプル データ (および関数の堅牢性を示す Big Class) を使用して説明します。
football_dat = Open("$SAMPLE_DATA/Football.jmp");
DupCol("Height"); //Produces copy of Height named "Height - Copy"
DupCol("Height", new = "Height Again"); //Produces copy of Height named "Height Again"
Open("$SAMPLE_DATA/Big Class.jmp"); //just to show robustness since this data table also has a column named "height"
//Different ways to specify the data table if not wanting to assume Current Data Table
DupCol("Height", new = "Height Once More", dt = Data Table("Football") );
DupCol("Height", new = "Height Last Time", dt = football_dat );
ありがとう。 他に良い方法がない場合は、スクリプトを使用することが間違いなく選択肢になります。
ポイント アンド クリックの観点から見ると、私が知っている最短の方法は依然として 2 ステップのプロセスです。一般的な Ctrl+C/Ctrl+V 操作を使用してデータをコピー/貼り付けます。メタ データ (列プロパティ) をコピー/貼り付けするには、複製する列の列ヘッダーを右クリック > [列プロパティのコピー]、新しいコピー列を右クリック > [列プロパティの貼り付け] を選択します。