データ テーブルを開くときに、プライベート オプションを使用してデータ テーブルを非表示にすることができます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private );
同じ機能は、サブセット、連結などのテーブル操作にも使用できます。
Data Table( "Big Class" ) << subset(1, Private)
Data Table( "Big Class" ) << Concatenate( Data Table( "Big Class" ), Private);
MFI の場合、そのようなオプションはありません:(
...これまでのところ、コミュニティからの強い要望があります。
複数のファイルをインポートするためのプライベート オプション
私のスクリプトでは、デバッグ中にデータ テーブルを確認したいので、次の内容を追加しました。
//developerIsHere = 1
loadPrivate = If( Is Empty( developerIsHere ),1,0); // default: 1; for debugging automatically set to 0
dt = Open( "$SAMPLE_DATA/Big Class.jmp", private(loadPrivate ) );
という考えで:
As a developer, I can execute the developerIsHere = 1 behind the //
then the data table is opened with the option private(0) and I can see the data table and debug the code.
驚くべきことに、
Data Table( "Big Class" ) << subset(1, private(loadPrivate ) )
「機能」しないため、テーブルは、 loadPrivateの現在の値に関係なく、常にプライベート モードで開かれます。テーブル操作は、引数とは無関係に、 Privateの存在に反応するようです。
次のコマンドを試してみてください。
current data table() << subset(1,Private(1));
current data table() << subset(1,Private(0));
current data table() << subset(1,Private("has no effect"));それらはすべて同じ効果を持ちます。サブセットはプライベート モードで開かれます。
うーん。
プライベートとプライベートの違いについてのドキュメントはありますか?
以下と同じことを行う、それほど複雑ではないものはありますか?
Eval(Substitute(Expr(current data table() << Subset( 1,__p__)),Expr(__p__),If(loadPrivate,Expr(Private),1)));
TS-00127556
➥ Jmp と JSL の小さなトラップ
式を混乱させるのは非常に簡単なオプションだけだと思います
Names Default To Here(1);
DEBUG = 1;
If(IsEmpty(DEBUG),
TABLE_VISIBILITY = "Visible";
, DEBUG == 1,
TABLE_VISIBILITY = "Private";
, // else
TABLE_VISIBILITY = "Visible";
);
dt = Eval(EvalExpr(Open("$SAMPLE_DATA/Big Class.jmp", Expr(TABLE_VISIBILITY))));
dt_subset = Eval(EvalExpr(dt << Subset(dt, Expr(TABLE_VISIBILITY))));
dt_new = New Table("MyTable", Visibility(TABLE_VISIBILITY));
Show(dt, dt_subset, dt_new);
Maybe if all the messages/functions related to table creation didn't just use , オプションの引数ではなく、 (新しいテーブルのような) 引数として、このようなものが簡単になる可能性があります。