テーブルが存在しない場合にスクリプトの実行を続行する方法。サブセット関数を使用して、メインのデータテーブルをいくつかのテーブルに分割しました。次に、いくつかの操作を実行し、更新機能を使用してそれらをマージし直そうとしています。ただし、テーブルが 1 つしかない場合もあれば、2 つのテーブルがある場合もあります。 2 番目のテーブルが存在しない場合にスクリプトに続行を指示するにはどうすればよいですか。
// データテーブルを更新します
データテーブル( "素材A" ) << Update(
With( データテーブル( "材料 B" ) ),
列の一致( :SN = :SN )
マテリアル A またはマテリアル B テーブルが存在しない場合でも実行を続行するようにスクリプトに指示するにはどうすればよいですか。
基本的なデータ分析とモデリングRe: テーブルが存在しない場合にスクリプトの実行を続行する方法。Try ステートメントを使用するか、更新前にそれらのテーブルが存在するかどうかを確認することができます。個人的には、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() を使用する方法を見つけることができます)。