JSL keep命令保留想要的變量並刪除不需要的變量?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我正在尋找一個 JSL 腳本命令來僅“保留”指定的列變量,並刪除當前數據表中的所有其他變量。
這將是指定命令的逆操作: dt << Delete Columns( :A, :B, ... :N);
理想情況下,更有效的 keep 命令應如下所示:
dt = 當前數據表( );
dt << 保留列 (:time, :day, :location);
(結果=刪除所有不等於的列:時間、:日期、:地點)。
謝謝。
回复:JSL keep 命令保留想要的變量並刪除不需要的變量?JMP 14 中的 JSL 添加了更直接的方法。 選擇列、反轉列選擇和刪除列可以完成所需的操作。
dt = open("$SAMPLE_DATA\Big Class.jmp");
a = {"height", "weight"};
dt << select columns(a);
dt << invert column selection;
b = dt << get selected columns;
dt << delete columns(b);回复:JSL keep 命令保留想要的變量並刪除不需要的變量?可能一個更簡單、易於手動執行(並且易於編寫腳本)的解決方案是僅對數據進行子集化。
選擇要保留的列,然後使用選定列(1) 選項進行子集化。當數據表變大時,這應該也比上面描述的方法更快,但我沒有測試過。

回复:JSL keep 命令保留想要的變量並刪除不需要的變量?謝謝。是我們上面的腳本很有幫助。
與創建新數據表相比,我稍微修改了一下以在當前數據表中進行操作,例如數據表(“name_here”),結果是成功的。
回复:JSL keep 命令保留想要的變量並刪除不需要的變量?在他們將其添加到 JSL 之前,您可以嘗試以下操作:
回复:刪除不在列表中的列
它可以進一步開發,在使用表更新命令之前我發現它非常有用。
在更新表之前,刪除具有相同名稱但您不希望更新的列非常有用。 下面將通過定義要保留的列來完成此操作。
dt10 = New Table( "Test",
Add Rows( 10 ),
New Column( "A" ),
New Column( "B" ),
New Column( "C" ),
New Column( "D" )
);
Keep = {"A", "C"};
todelete = dt10 << get column names( "string" );
For( in = 1, in <= N Items( Keep ), in++, <BR />// assuming the to keep list is shorter than the list of columns in the table.
location = Contains( todelete, Keep[in]) ; // find the location of the keepers
if (location > 0, Remove From( todelete, location, 1 ) // if found remove it
));
if (nitems (todelete) > 0, dt10 << delete columns( todelete )); <BR />// if there is a delete list delete the columns from the table
如果您向開發團隊詢問此命令,請要求他們對行進行相同的操作。
最好的
羅恩
回复:JSL keep 命令保留想要的變量並刪除不需要的變量?我假設您正在提出功能增強請求。如果您將此提交至
support@jmp.com