테이블 조인jsl을 사용하여 두 테이블을 조인해야합니다. 첫 번째 테이블은 다음과 같습니다.
그러나 두 번째 테이블은 다음과 같을 수 있습니다.

이 표에서 Pred Form Molecule 1 (%) (2)은 분자 1 (%)과 같으며 값 열의 숫자가 반복됩니다. 이러한 값 중 하나만 고려하기 위해 조인을 어떻게 지정할 수 있습니까?
결합 할 두 번째 테이블은 다음과 같습니다.

이 경우 첫 번째 표의 분자 1 (%)이 조인해야하는 표의 Pred Form Molecule1 (%) (2)과 동일하다는 것을 조인에서 어떻게 지정할 수 있습니까?
최종 테이블은 다음과 같이되어야합니다.
어떤 도움을 주셔서 감사합니다.
다시 : 테이블 조인 @pmroz ,
명확히 해 주셔서 감사합니다. 나쁘다. 내가 누락 된 더 좋은 접근 방법이 있는지 궁금해하고 있었다.
@pmroz 쓴 :
나는 변화를 제안하고 있었다. 가치 열에는 열의 이름을 변경하지 마십시오. 레코딩 옵션을 사용하려면 레코딩 할 열을 강조 표시하고 클릭하십시오. Cols> 유틸리티> Recode (v12) 또는 Cols> Recode (v13).
다시 : 테이블 조인나는 변화를 제안하고 있었다. 가치 열에는 열의 이름을 변경하지 마십시오. 레코딩 옵션을 사용하려면 레코딩 할 열을 강조 표시하고 클릭하십시오. Cols> 유틸리티> Recode (v12) 또는 Cols> Recode (v13).
다시 : 테이블 조인 @txnelson & @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";
다시 : 테이블 조인 열 이름을 어떻게 recode합니까? @pmroz 또한 Recode 옵션은 테이블에 대해 회색으로 표시됩니다.
다시 : 테이블 조인Uday, 숫자와 "%"기호 때문에 추측 할 수있는 열 이름도 추출 할 수 없습니다. 내가 어떻게 할 수 있는지 가르쳐 주시겠습니까? 지금은이 스크립트를 사용하여 이름을 추출하려고합니다. 감사.
dt = Open ( "C : \ Users \ filepath \ try1.jmp");
col_names = dt << 열 이름 가져 오기 ();
쇼 (col_names);
다시 : 테이블 조인 Cols> 유틸리티> Recode 값을 표준 값으로 변경할 수 있습니다.
다시 : 테이블 조인 @Aam_jmp ,
2 단계.
1 단계 : 표 1의 제목 값 추출
2 단계 : 표 1의 제목을 반복하고 표 2에서 비슷한 이름을 찾은 다음 동일한 내용을 반영하도록 행을 업데이트하십시오
다시 : 테이블 조인열에있는 이름을 조인해야하는 테이블과 동일하게 보이도록 조작하려면 어떻게해야합니까?
다시 : 테이블 조인 @Aam_jmp ,
표 사이의 내부 조인은 일치시킬 열을 찾습니다. 표 2에서 같은 행의 이름을 바꿀 수 있습니까? 그러면 자동으로 원하는 결과를 얻을 수 있습니다. 행을 추적 할 수없는 곳에 행이 너무 많지 않으면이 방법을 사용하는 것이 좋습니다.