列を右クリックするのと同じように列をコピーして貼り付ける方法の JSLこんにちは、みんな、
スクリプトインデックスを調べましたが、コピー列と貼り付け列のオプションでスクリプトを作成する方法に関する参照が見つかりませんでした。

ログには過去の部分は記録されますが、コピー部分は記録されません。
貼り付け部分は、同じ名前で新しい数式を作成し、コピーした列からコピーしたプロパティを貼り付けるだけのように見えます (1 つのデータ テーブルから別のデータ テーブルに複数のスムーズな数式列をコピーしようとしています)
// Paste columns
Data Table("UBS") << New Column("Smoother(UBS Temp)", Numeric, "Continuous", Format("Best", 12), Formula(したがって、列名を取得し、新しいテーブルに新しい列を作成し、名前を変更し、列のプロパティをコピーして貼り付けるというループ処理を実行する必要があるようです。
誰かがもっと良いアイデアを持っているなら別ですが(きっとあるはずです!)
ご意見をいただければ幸いです。
スティーブ
自動化とスクリプトRe: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL何をしようとしているのですか? 文字値のみをコピーしたい場合 (列のプロパティではない)、結合またはデータテーブルの添え字を使用します。また、値をコピーする列が文字型であることを確認してください。
Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSLこのコマンドは文字列値には機能しないようですが、列から文字をコピーして貼り付ける別の方法が見つかりません。文字に対してこれを行う別の方法はありますか?
Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL列プロパティのコピー + 列プロパティの貼り付けは複数の列に使用できるため、これらを使用する場合は 2 行になります (私はおそらく使用せず、<< get script を使用して列をループします)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Tiretread.jmp");
dt2 = New Table("test it",
New Column("T1", numeric, continuous),
New Column("T2", numeric, continuous),
New Column("T3", numeric, continuous),
Add Rows(10)
);
dt << Copy Column Properties({:MODULUS, :ELONG});
dt2 << Paste Column Properties({:T1, :T3});
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-729552" slang="en-US" mode="CREATE">Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL</LINGO-SUB><LINGO-BODY id="lingo-body-729552" slang="en-US" mode="CREATE"><P>どちらの解決策もうまくいきました。 <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/26800" target="_blank">@hogi</A>と<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A>に感謝します!</P><P> </P><P>列を転送するには、ループを作成する必要があります。そのため、コピーを模倣した JSL の単一行項目と、選択した列の貼り付け用の 1 行項目がある場合ほどエレガントではありませんが、少なくとも今はそこに到達できます。</P><P> </P><P>再度、感謝します!<BR /><BR /></P><P>スティーブ</P></LINGO-BODY><LINGO-SUB id="lingo-sub-729541" slang="en-US" mode="CREATE">Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL</LINGO-SUB><LINGO-BODY id="lingo-body-729541" slang="en-US" mode="CREATE"><P>数式だけの問題であれば、 <FONT face="courier new,courier"><< get formula</FONT> - を使用して、返された式を使用して 2 番目のテーブルに列を作成できます。<BR /><BR /></P><PRE><CODE class=" language-jsl">Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "A",
Format( "Best", 12 ),
Formula( :weight - :height )
);
myformula =:a << get formula;
dtnew = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Eval(Eval Expr(dt new << new column ("A", Formula(Expr(Name Expr(myformula))))))
Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSLこのような場合には、<<を使用する代わりにSend()関数を使用することを好みます。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
newcol = dt << New Column("ABC", Numeric, Continuous, Formula(:height * :weight));
colscript = Column(dt, "ABC") << get script;
Eval(EvalExpr(
Send(dt, Expr(NameExpr(colscript)))
));
スクリプトを使用して列プロパティのコピー/貼り付けを行うこともできますが、何をすべきかがより明確で、クリップボードを混乱させないため、<< get script を使用します。
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
newcol = dt << New Column("ABC", Numeric, Continuous, Formula(:height * :weight));
dt << Copy Column Properties({:ABC});
dt << New Column("ABCD");
dt << Paste Column Properties({:ABCD});
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-729458" slang="en-US" mode="CREATE">Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL</LINGO-SUB><LINGO-BODY id="lingo-body-729458" slang="en-US" mode="CREATE"><P>ああ、これは思っていたよりも複雑ですね。</P><P> </P><PRE><CODE class=" language-jsl">my new table << myscript
動作しません...
したがって、どちらかの方法でメッセージを準備する必要があります。
Eval (EvalExpr(dt << Expr(Name Expr(myscript))))
または
Eval(Substitute(Expr(dt << _message_), Expr(_message_), Name Expr(myscript)))
または、スクリプトを実行する前に現在のデータ テーブルを切り替えます。
current data table( my new table);
myscript
Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL@hogi さん、ご提案ありがとうございます。おそらく愚かな質問かもしれませんが、次のステップは何でしょうか? 参照列からスクリプトを取得したら、貼り付け列プロパティを使用してみましたが、うまくいかないようです。次のステップについて何かご意見があれば、ぜひお聞かせください。
スティーブ
Re: 列を右クリックするのと同じように列をコピーして貼り付ける方法に関する JSL列を問い合わせることができます - 同じことが他の多くのオブジェクトに対しても可能です:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "A",
Format( "Best", 12 ),
Formula( :weight - :height )
);
myscript = :A << get script()