JSL 了解如何複製和貼上列,就像右鍵單擊列一樣大家好,
我正在搜尋腳本索引,但找不到任何有關如何在複製列和貼上列選項中編寫腳本的參考

日誌會記錄過去的部分,但不記錄複製的部分。
看起來貼上部分只是創建一個具有相同名稱的新公式,然後貼上從複製列複製的屬性(我正在嘗試將多個更平滑的公式列從一個資料表複製到另一個資料表)
// Paste columns
Data Table("UBS") << New Column("Smoother(UBS Temp)", Numeric, "Continuous", Format("Best", 12), Formula(因此,看起來我必須循環獲取列名稱,在新表中建立新列,重命名它們,然後複製並貼上列屬性。
除非有人有更好的主意(我相信會有的!)
感謝您的任何意見。
史蒂夫
自動化和腳本編寫回覆:JSL 了解如何複製和貼上列,就像右鍵單擊列一樣你想做什麼?如果您只想複製字元值(而不是列屬性),我將使用聯接或資料表下標。另外,請確保您要將值複製到的列是字元類型
回覆:JSL 了解如何複製和貼上列,就像右鍵單擊列一樣此命令似乎不適用於字串值,但我找不到另一種方法來複製和貼上列中的字元。對於角色有不同的方法嗎?
回覆:JSL 了解如何複製和貼上列,就像右鍵單擊列一樣複製列屬性 + 貼上列屬性可用於多個列,因此如果您想使用它們,它可能是兩行(我很可能不會並且會使用 << 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">回覆: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 行項目和一個用於粘貼所選列的行項目那麼優雅,但至少我現在就可以到達那裡。</P><P> </P><P>再次感謝!<BR /><BR /></P><P>史蒂夫</P></LINGO-BODY><LINGO-SUB id="lingo-sub-729541" slang="en-US" mode="CREATE">回覆:JSL 了解如何複製和貼上列,就像右鍵單擊列一樣</LINGO-SUB><LINGO-BODY id="lingo-body-729541" slang="en-US" mode="CREATE"><P>如果只是關於公式,您可以使用<FONT face="courier new,courier"><< get Formula</FONT> - 然後使用傳回的表達式在第二個表中建立列:<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))))))
回覆: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 腳本,因為它更清楚它應該做什麼,並且不會弄亂剪貼簿
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">回覆: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
回覆:JSL 了解如何複製和貼上列,就像右鍵單擊列一樣感謝您的建議@hogi ,這可能是一個愚蠢的問題,但下一步是什麼?一旦我從參考列中獲取了腳本,我就厭倦了使用貼上列屬性,但這似乎不起作用。感謝對下一步的任何見解!
史蒂夫
回覆: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()