我經常需要將一系列公式列從一個表複製到另一個表。儘管“複製多列屬性”使該工作更容易,但它不包括列名稱。由於我的列名可能很長,這樣做很耗時,即使使用剪切和粘貼也是如此,因為可能有很多這樣的列。有沒有一種簡單的方法可以將屬性(公式、名稱和所有)從一個表複製到另一個表?我意識到我可以編寫一個腳本來執行此操作,但我想也許我不知道某些選項。
傑里庫珀,
這很好用。我不知道從列面板中復制名稱。
你是對的,我還沒有 JMP15,但希望在我的公司合併完成後得到它。
拍
對不起@pcarroll1 ,
我突然意識到您可能沒有使用版本 15 - 我相信這是一項新功能。
你可以在以前的版本中做你想做的,儘管正如你提到的,列名沒有傳達。 然而,有一種方法可以將多個列名從一個表複製到另一個表。
將公式列粘貼到新表後(使用“粘貼多列屬性”),返回到源表(確保您的公式列仍處於選中狀態),然後單擊“列”中的標題欄“ 控制板:

鍵入 Ctrl-C 以復制列名。然後返回目標表並確保您的新公式列仍處於選中狀態,單擊“列”標題,然後鍵入 Ctrl-V 以粘貼列名稱。 顯然,您需要確保在執行此操作之前沒有更改任何一個表中列的順序,否則,您的列將無法正確命名。這是幾個額外的步驟,但不像重新鍵入一堆長名稱那樣令人生畏。
你好@pcarroll1 ,
如果從源表中選擇要復制的公式列,請右鍵單擊其中一個列的標題,然後選擇“複製列”;然後右鍵單擊目標表數據右側第一個空列的標題,然後選擇“粘貼列”——我想你會得到你想要的。順便說一句,右鍵單擊目標表中的現有列將在該列之後立即插入新的公式列。
好的,我衝了那個!
此操作不會將列屬性傳送到目標。 只有數據值和列屬性。
一個簡單的拖動(沒有修改鍵)會將列從一個表移動到另一個表而不是複制它們。
也可以在源數據表中選中的數據列上右擊,選擇複製列屬性或複制列,但這種方式不會復制值!
所以我想沒有簡單的方法可以一步得到你想要的東西。 如果您有很多列要重複使用,那麼腳本可能是最好的方法。 我試圖通過 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)));