保留重複的列你好,
我有2 個數據表,這些表在某種程度上相似,其中測試參數(這意味著可能有30% 的列共享相同的名稱)相同,因為它們因測試位置而異,因此測試結果也會不同。 我打算使用更新合併此表,同時維護第二個表列數據,但自動重命名這些列,以便我可以並排查看它們。 這可以透過腳本完成嗎?
謝謝。
回覆:保留重複的列謝謝我和吉姆。 在正常情況下是正確的,變數較少,表可以毫無問題地連接。
回覆:保留重複的列為了擴展吉姆的觀點,您將需要按行加入,因為您似乎沒有典型連接中的密鑰對。我很難理解為什麼你會以這種方式加入表格; SN AX0001 與 STX0030 相關但與 STX0031 無關嗎?如果是這樣,也許您可以向這兩個表添加另一列,以更有意義的方式連接它們。
回覆:保留重複的列您要求的是連接 2 個資料表時 JMP 中所採取的預設操作。如果兩個資料表中都有同名的列,JMP 會重新命名這些列。這是一個腳本版本,但是,如果您有 2 個表,您可以透過互動方式執行此操作
表==>加入
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA\big class.jmp" );
dt2 = Open( "$SAMPLE_DATA\big class Families.jmp" );
Data Table( "big class Families" ) << Join( With( Data Table( "big class" ) ),
By Row Number );
回覆:保留重複的列謝謝ih。 雖然這不完全是我想要的,但想法就在那裡。 附件是我想要做的事情。加入 2 個資料表並自動重命名與第一個資料表相符的第二個資料表列。 抱歉,如果我最初的訊息有任何混淆。
回覆:保留重複的列我不確定您到底想做什麼,但是您可以使用腳本重命名列。如果開啟每個資料表並保留對每個資料表的單獨引用,則可以向所有資料表發送訊息以重新命名資料列:
Names default to here( 1 );
//Open two tables
dt1 = Open("$SAMPLE_DATA/Iris.jmp"); //first table
dt1 << Set Name( "Table 1" );
dt2 = Open("$SAMPLE_DATA/Iris.jmp"); //second table (different filename)
dt2 << Set Name( "Table 2" );
//Concatenate tables
dtJoined = dt1 << Concatenate( dt2 );
dtJoined << Set Name( "Combined" );
//Change column names
Column( dt1, "Sepal length" ) << Set Name( "Sepal_length" );
Column( dt2, "Sepal length" ) << Set Name( "Sepal_length" );
Column( dtJoined, "Sepal length" ) << Set Name( "Sepal_length" );如果更改大量列名,您可以使用函數來替換最後三行:
//Make a function to change column names in all tables
ChangeAllNames = function({original, new},
Column( dt1, original ) << Set Name( new );
Column( dt2, original ) << Set Name( new );
Column( dtJoined, original ) << Set Name( new );
);
//Then call the function
ChangeAllNames( "Sepal width", "Sepal_width" );
ChangeAllNames( "Petal length", "Petal_Length" );