테이블이 존재하지 않는 경우 스크립트 실행을 계속하는 방법.하위 집합 기능을 사용하여 기본 데이터 테이블을 몇 개의 테이블로 분류했습니다. 그런 다음 몇 가지 작업을 수행하고 업데이트 기능을 사용하여 다시 병합하려고 합니다. 하지만 때로는 테이블이 하나 뿐이고 때로는 테이블이 2개 있을 때도 있습니다. 두 번째 테이블이 존재하지 않는 경우 스크립트를 계속 진행하도록 어떻게 지시할 수 있습니까?
// 데이터 테이블 업데이트
데이터 테이블( "재료 A" ) << 업데이트(
With( 데이터 테이블( "재료 B" ) ),
열 일치( :SN = :SN )
Material A 또는 Material B 테이블이 존재하지 않는 경우에도 여전히 실행을 계속하도록 스크립트에 어떻게 알릴 수 있습니까?
기본 데이터 분석 및 모델링Re: 테이블이 존재하지 않을 경우 스크립트 실행을 계속하는 방법.Try-statement를 사용하거나 업데이트하기 전에 해당 테이블이 있는지 확인할 수 있습니다. 개인적으로는 Try에 의존하는 대신 검사를 수행할 것입니다. 또한 일반적으로 테이블 이름에 의존하는 대신 변수를 사용하여 테이블에 대한 참조를 저장하는 것이 더 좋습니다.
편집: Try를 사용하면 다음과 같습니다( https://www.jmp.com/support/help/en/17.2/#page/jmp/throw-and-catch-exceptions.shtml )
Try(
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
그리고 테이블 이름을 확인하세요
tablelist = Get Data Table List() << get name;
// Only join if both are found
If(Contains(tablelist, "Big Class") & Contains(tablelist, "Big Class Families"),
Data Table("Big Class") << Update(
With(Data Table("Big Class Families")),
Match Columns(:name = :name)
)
);
Re: 테이블이 존재하지 않을 경우 스크립트 실행을 계속하는 방법.테이블 이름에 의존하는 대신, 테이블에 대한 참조를 저장하기 위해 변수를 사용하라는 해결책과 조언을 주셔서 감사합니다.
Re: 테이블이 존재하지 않을 경우 스크립트 실행을 계속하는 방법.변수를 사용하는 경우 Is Empty(dtref)를 사용할 수도 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Try(dt2 = Open("$SAMPLE_DATA/Big Class Families"));
Show(Is Empty(dt), Is Empty(dt2));
하지만 테이블을 어디서 가져오느냐에 따라 다른 방법을 사용해야 할 수도 있습니다(다른 방법이 아무것도 작동하지 않는 경우 Try()를 사용하는 방법을 알아낼 수 있습니다).