JMP 18 새로운 업데이트 테이블 스크립트가 테이블을 덮어씁니다.Excel 표를 JMP 18로 가져오면 '소스'와 '표 업데이트' 스크립트 두 개가 나오는데, 유일한 차이점은 '표 업데이트(1)' 명령인 듯합니다.
두 번째 스크립트는 Excel 파일에서 업데이트를 수행하고 가져온 후 생성된 모든 열을 덮어씁니다. 업데이트할 때 새 열을 그대로 두는 방법이 있습니까? 스크립팅 인덱스에서 아무것도 찾지 못했습니다.
자동화 및 스크립팅콘텐츠 구성윈도우Re: JMP 18 새로운 업데이트 테이블 스크립트가 테이블을 덮어씁니다.안녕하세요 @Ake , 현재 업데이트 아이디어는 기존 데이터를 입력 파일의 새 데이터로 바꾸는 것입니다.
당신이 설명한 대로, 이건 매우 파괴적입니다.
그 아이디어는 다음과 같을 수 있습니다.
추가 열의 기존 값이 새로 가져온 데이터와 일치한다는 보장은 없으므로 삭제하는 것이 좋습니다. 음, 수식이 있는 열의 경우, 그런 열을 삭제해야 할 이유가 보이지 않습니다.
업데이트 스크립트보다 훨씬 더 좋습니다.
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
수동으로 추가한 값은 삭제되지만 수식 열은 유지됩니다. 
단점: 소스 스크립트에 의존한다는 점인데, 소스 스크립트도 매우 취약합니다. 업데이트 및 연결: 소스 스크립트 충돌 .
또는 Join, Concat, Update를 살펴볼 수도 있습니다.
Re: JMP 18 새로운 업데이트 테이블 스크립트가 테이블을 덮어씁니다.고맙습니다! 소스 스크립트를 그냥 여러분의 스크립트에 복사하면 덜 취약해집니다.
저는 더 복잡한 방법을 사용해 왔고, 필요한 행 수를 추가한 다음 업데이트했습니다. 귀하의 스크립트가 더 깔끔합니다.
// Compare and add number of rows if needed
nrows1 = N Rows( dt1 );
nrows2 = N Rows( dt2 );
If( nrows2 < nrows1,
dt2 << Add Rows( nrows1 - nrows2 )
);
// Update dt2
Data Table( dt2 ) << Update( With( Data Table( dt1 ) ) );
Close( dt1 );
dt2 << save();
Re: JMP 18 새로운 업데이트 테이블 스크립트가 테이블을 덮어씁니다.이 스크립트의 위험성: concatenate를 통해 상속됩니다.
사용자 A: Excel 파일을 가져옵니다.
사용자 B: 2개의 파일을 연결합니다.
사용자 C: 누락된 데이터에 대해 궁금해하며 "테이블 업데이트"를 시도합니다.
"테이블 업데이트" 스크립트를 비활성화하시겠습니까?
여기에서 투표해 주세요: "테이블 업데이트" 스크립트 생성을 비활성화하는 옵션
제목: JMP 18의 새 업데이트 테이블 스크립트가 테이블을 덮어씁니다안녕하세요, 이 해결 방법이 정말 마음에 듭니다. 그런데 한 가지 질문이 있습니다. 이 스크립트로 테이블을 업데이트하면 자동으로 일반적인 테이블 업데이트 스크립트가 추가되는데, 이로 인해 수식 열이 손상될 수 있습니다. jmp 테이블에 추가되는 새로운 "테이블 업데이트" 스크립트가 자동으로 생성되지 않도록 하는 방법이 있을까요?
제목: JMP 18의 새 업데이트 테이블 스크립트가 테이블을 덮어씁니다스크립트 내의 "테이블 업데이트" 스크립트를 삭제하거나 덮어쓰면 이 문제를 방지할 수 있습니다. 사용자 지정 "테이블 업데이트" 스크립트의 이름이 "Update Table"인 경우 다음과 같은 방법이 있습니다.
dt = Current Data Table();
update_script = dt << Get Script( "Update Table" );
dt << Delete Scripts( {"Update Table"} );
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
Eval(
Substitute(
Expr(
dt << Set Property( "Update Table", __update_script__ )
),
Expr( __update_script__ ), Name Expr( update_script )
)
);
또는 스크립트 이름을 다른 이름("Update")으로 지정하고 업데이트 후에 "Update Table"을 제거하는 줄을 추가하면 됩니다.
dt = Current Data Table();
dtnew = dt << Run Script( "Source" );
dt << Select All Rows << Delete Rows;
dt << Concatenate( dtnew, Append to first table );
Close( dtnew, NoSave );
dt << Delete Scripts( {"Update Table"} );