私は JSL を 2 週間前に始めたばかりの初心者です。
多くのテストの分析を作成しようとしていますが、毎回新しいデータテーブルに一度にいくつかのテストが積み重ねられます。スクリプトが完了するまでに、多くのものが開かれることになりますデータテーブル。 分析が完了した後、これらのデータ テーブルを閉じることができません。元のデータ ファイルや実際のチャートを閉じずに、これらの開いているファイルを閉じる方法はありますか?
なぜなら、test、test1、... という名前のデータ ファイルが 30 個を超えることになるからです。
これが私のコードのスナップです:
dt = Current Data Table();
NW = New Window( "TRIM_CHARTS",
dt << Stack(
columns(
:TRIM_TARGET,
:Emulate_0000__,
:Emulate_0001__,
:Emulate_0010___,
:Emulate_0011__,
:Emulate_0100__,
:Emulate_0101__,
:Emulate_0110__,
:Emulate_0111__,
:Emulate_1000__,
:Emulate_1001__,
:Emulate_1010__,
:Emulate_1011__,
:Emulate_1100___,
:Emulate_1101__,
:Emulate_1110___,
:Emulate_1111__,
: _BEST_VALUE
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "test" )
);
Oneway(
Y( :Data ),
X( :Label ),
Name( "Means/Anova" )(1),
Means and Std Dev( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Connect Means( 1 ),
X Axis Proportional( 0 ),
Points Spread( 1 ),
Grand Mean( 0 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{Row Legend(
Temp,
Color( 1 ),
Color Theme( "Blue to Green to Red" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
dt << Stack(
columns(
:Ilim__TRIM_TARGET,
:Emulate_0000_Ilim_,
:Emulate_0001_Ilim_,
:Emulate_0010_Ilim_,
:_iLIM_BEST_VALUE
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "test" )
);
Oneway(
Y( :Data ),
X( :Label ),
Name( "Means/Anova" )(1),
Means and Std Dev( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Connect Means( 1 ),
X Axis Proportional( 0 ),
Points Spread( 1 ),
Grand Mean( 0 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{Row Legend(
Temp,
Color( 1 ),
Color Theme( "Blue to Green to Red" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
);
nw << Set page setup(
margins( 0.5, 0.5, 0.5, 0.5 ),
scale( 0.8 ),
portrait( 0 ),
paper size( "A3" )
);
jrn = NW << Journal;
NW << save PDF( "C:\My Documents\Trim_CHARTS.pdf" );
ありがとう
サム
Uday のコードはうまく機能します。以下のコードは同じコードを単純化したものです。
Names Default To Here( 1 );
DontClose = {"Test1", "Result"}; // Example names of tables you want to leave
// Loop backwards through the list, so the table numbers do not change
For( i = N Table(), i >= 0, i--,
If( Contains( DontClose, Data Table( i ) << get name ),
Continue(),
Close( Data Table( i ), "No Save" )
)
);これは、目的を達成するための最も効率的な方法ではないかもしれませんが、うまくいきます。
openDTs = List(); // Define an empty list to collect names of all open data tables
TableNames = List();
For( i = 1, i <= N Table(), i++,
Insert Into( openDTs, Data Table( i ) );
Insert Into(TableNames,Data Table(i) << get name);
);
// By now openDTs contains references of all tables that you have open
DontClose = {"Test1","Result"}; // Example names of tables you want to leave open
For( i = 1, i <= N Items(openDTs) , i++,
TabName = openDTs[i] << Get Name ;
If(Contains(DontClose,TabName),
Continue();
,
Close(openDTs[i],"No Save");
);
);それらを非表示にするのは面倒ですが、名前を指定せず、最終出力を閉じずにすべてのテーブルを閉じる方法はありますか(たとえば、ある種の考えを除いてすべて閉じる)。
ありがとう
積み重ねられたデータ テーブルを作成するときは、単にテーブルを非表示にするだけです。 これらは JMP ホーム ウィンドウに表示されますが、表示されるウィンドウは作成されません。
dt << Stack(invisible,
columns(
:Ilim__TRIM_TARGET,
:Emulate_0000_Ilim_,
:Emulate_0001_Ilim_,
:Emulate_0010_Ilim_,
:_iLIM_BEST_VALUE
),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Output Table( "test" )
);最終レポート/jrn が完成すると、最終的にはこうなります。
