가끔 새 행을 포함하는 테이블을 업데이트하려고합니다 (인덱스 기반).
다음이 작동하지 않는 것 같기 때문에 조인을 사용해야하는 것 같습니다 (여기서 색인은 이름 열입니다).
Names Default To Here( 1 );
dt1 = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = New Table( "Little Class",
Add Rows( 3 ),
New Column( "name",
Character,
Nominal,
Set Values( {"ALICE", "NEW_NAME", "OTHER_NEW_NAME"} )
),
New Column( "height",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "weight",
Continuous,
Set Values( [999, 999, 999] )
),
New Column( "RANK",
Continuous,
Set Values( [3, 1, 2] )
),
New Column( "CODE",
Continuous,
Set Values( [0, 1, 1] )
)
);
dt1 << Update(
With( Data Table( "Little Class" ) ),
Match Columns( :name = :name ),
Add columns from Update table( {:RANK} )
);
귀하의 명시된 가정이 정확합니다. 원하는 것을하려면 Join 플랫폼을 사용해야합니다.
여기에서 커뮤니티의 유사한 게시물을 찾았으며 새 행이 추가 될 때 업데이트 대신 가입을 사용하는 것이 좋습니다.
JMP 데이터 테이블 업데이트
업데이트 대신 조인을 사용할 수없는 이유가 있습니까 (추가 테이블을 처리해야한다는 점 제외)?
JMP 도움말에서 : 데이터 테이블 업데이트 :
두 개의 데이터 테이블이 있고 새 테이블의 데이터로 원래 테이블을 업데이트하려면 테이블> 업데이트 . 업데이트 명령은 조인의 특별한 경우입니다. 업데이트 옵션이 선택된 조인입니다. , 새 테이블이 생성되지 않습니다.
"추가 테이블을 처리해야 하는 경우를 제외하고"
정확히. 업데이트 옵션을 선택한 상태에서 조인을 수행했는데도 새 테이블이 생성됩니다.
dt<< Join(
With( dt_new ),
Update, // this option is selected
By Matching Columns( :index= :index),
Drop multiples( 0, 0 ),
Include Nonmatches( 1, 1 ),
Preserve main table order( 1 )<BR />);<BR /><BR />// Opens new table apart of dt and dt_new