連接表我必須使用 jsl 連接兩個表。 第一個表如下:
但是,第二個表可以是這樣的:

在此表中,Pred Form Molecule 1 (%)(2) 與 Molecule 1(%) 相同,且值列中的數字是重複的。 如何指定聯結僅考慮這些值之一?
要連接的第二個表可能如下所示:

在這種情況下,如何在連接中指定第一個表中的 Molecule 1 (%) 與需要連接的表中的 Pred Form Molecule1 (%)(2) 相同。
我需要的最終表應該是這樣的:
感謝您的任何幫助。
回覆:連接表@pmroz ,
謝謝你的澄清。 我的錯是,想知道是否有更好的方法來解決我所缺少的問題。
@pmroz寫道:
我建議重新編碼以進行更改價值觀在列中,不要更改列的名稱。若要使用重新編碼選項,請反白顯示要重新編碼的列,然後按一下欄 > 實用工具 > 重新編碼(v12) 或列 > 重新編碼(v13)。
回覆:連接表我建議重新編碼以進行更改價值觀在列中,不要更改列的名稱。若要使用重新編碼選項,請反白顯示要重新編碼的列,然後按一下欄 > 實用工具 > 重新編碼(v12) 或列 > 重新編碼(v13)。
回覆:連接表@tx尼爾森& @pmroz ,
如果可以的話,我想問一個問題,為什麼您會建議在給定表結構的情況下重新編碼/重命名列名?共享表的目前結構顯示資料位於行中。 雖然我理解,人們總是可以轉置資料並重命名列,想知道這是否是您推薦的方法? 請指教
回覆:連接表您可以使用搜尋(尋找)對話方塊變更列名稱或部分列名稱

回覆:連接表@Aam_jmp ,
我已經使用表嘗試和聯接測試了此程式碼。 如果需要,您可以適當地擴展它以包含 try1。
Clear Log(); Clear Globals();
// Open Data Tables
dt1 = Open(FilePath1); // Where FilePath1 points to your file location for JOIN table
dt2 = Open(FilePath2); // Where FilePath2 points to your file location for try table
// Get Y values from main table
YVals = dt1:Y << Get Values;
// Get Col values from second table
ColVals = dt2:Col << Get Values;
// Loop through the values
for(i = 1, i <= N Items(YVals), i++,
for(r = 1, r <= N Items(ColVals), r++,
If(Contains(ColVals[r],YVals[i]),
ColVals[r] = YVals[i];
);
);
);
// Assign Corrected Values back to dt2
dt2 << New Column("CorrectedCol",Character,Continuous, << Set Values(ColVals));
// Join Tables
dt_Intermediate = dt1 << Join(With(dt2 ),
Select( :Y, :Quan Reqd ),
SelectWith( :Value ),
By Matching Columns( :Y = :CorrectedCol ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 )
);
// Remove Duplicates
dt_Results = dt_Intermediate << Summary(
Group( :Y, :Quan Reqd, :Value ),
Freq( "None" ),
Weight( "None" )
);
回覆:連接表嗨 Uday,我已經添加了表格。
回覆:連接表@Aam_jmp ,
請參閱下面的一些範例程式碼。 這應該適用於 JMP 中的任何資料表。 如果不是,我會要求您分享資料表的範例,我可以嘗試看看問題是什麼。
Clear Log(); Clear Globals();
// Open Sample Data
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
// Extract Column Names
ColNames = dt << Get Column Names("String");
// Extract Rows from a column
Cities = dt:city << Get Values;
// Change Column Name
Col = Column(dt,1);
Col << Set Name("City_Edit");
// Change Row Values
dt:City_Edit[7] = "TEMPE";
回覆:連接表如何重新編碼列名稱?@pmroz此外,我的表的“重新編碼”選項呈灰色。
回覆:連接表Uday,我甚至無法提取我猜測的列名,因為其中有數字和“%”符號。 你能指導我如何做嗎? 目前,我正在編寫這個腳本來提取名稱。 謝謝。
dt = Open( "C:\Users\filepath\try1.jmp" );
col_names = dt << 取得列名();
顯示(col_names);
回覆:連接表欄 > 實用工具 > 重新編碼將允許您將值變更為標準值。
回覆:連接表@Aam_jmp ,
2步。
步驟1:提取表1中標題的值
步驟 2:循環遍歷表 1 中的標題並在表 2 中尋找相似的名稱,然後更新該行以反映相同的名稱
回覆:連接表如何操作列中的名稱使其看起來與需要連接的表相同?
回覆:連接表@Aam_jmp ,
表之間的內連接將尋找匹配的列。 您可以重新命名表 2 中相同的行嗎? 這將自動給出您想要的結果。 除非你的行太多而無法跟踪,否則這是一種方法。