スクリプト:コンボボックスフィルタを含むデータテーブルサブセットこんにちは、
私はもっと大きなデータテーブルのサブセットを作成するためのスクリプトを書いています。 新しいサブセットには、サブジェクトID番号、DOB、および選択した日付の範囲を含める必要があります。 私は3つの異なるテキストボックスにID#、開始日、終了日を尋ねるスクリプトを書きました。(以下に含まれています、そしてそれは完全には程遠いです)。 ただし、現在のデータテーブルに使用できるID番号とその件名の日付を表示するために、ポップアップウィンドウにいくつかのドロップダウンメニューを表示します。ここから例に従うと、 http://www.jmp.com/support/notes/54/614.html コンボボックスで作業してみましたが、うまくいかないようです。
問題が発生するのは、2番目/ 3番目のドロップダウンメニューをID#の選択に応じて反応させることです。私が気づいたこと:SummarizeとAssociative Arrayは重複する日付と空白を減らすのを助けます、そして日付は好まれた "m / d / y"にはありません。
どんな助けにも感謝!
dt = Current Data Table();
Column(dt, "Coll Date") << Data Type("Numeric", Informat("m/d/y"), Format("m/d/y") );
Column(dt, "Coll Date") << Modeling Type("Continuous");
Column(dt, "Coll Date") << Order(Ascending);
nw = New Window( "Subject ID by Date Range.",
<<MODAL>= Char( startDate ) & Format( :Coll Date, "m/d/y" ) <= Char( endDate )
);
subdt = dt << Subset(
Columns( :Patient ID1, :DOB, :Coll Date ),
Output Table Name( "subset" ),
);
subdt<< sort(by(:Coll Date), Replace Table);</MODAL>A
再:スクリプト:コンボボックスフィルタを持つデータテーブルのサブセット選択デバイス、選択リスト対スライダーは、列のモデリングタイプが何であるかに基づいています。 モデリングタイプを「序数」に変更するだけで、選択範囲が選択リストになります。
dt=open("$SAMPLE_DATA\Movies.jmp");
dt:year << set modeling type(ordinal);
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);
あるいは、Yearカラムを実際のJMP Date値に変換し、そのカラムに日付フォーマットを配置すると、スライダーバージョンのコードがさらに見やすくなります。
dt=open("$SAMPLE_DATA\Movies.jmp");
for each row(
dt:year= date mdy(1,1,year));
dt:year << format("m/d/y");
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);再:スクリプト:コンボボックスフィルタを持つデータテーブルのサブセットおお、すごく簡単だよ!
samleデータに続いて、映画の種類を選択するのは素晴らしいことですが、Year列に似たようなものを取得することは可能です。 おそらく、小数点以下第3位までの年ではなく、離散値を取得するように型をフォーマットしますか?
再:スクリプト:コンボボックスフィルタを持つデータテーブルのサブセット指定した要件に合わせて独自のダイアログボックスを作成することもできますが、データフィルタをスクリプトで作成してから組み込みの選択機能を使用することで、ユーザーは赤い三角形に移動して「サブセットを表示」を選択すると、あなたが書いたデータテーブルが作成されます。
dt=open("$SAMPLE_DATA\Movies.jmp");
Current Data Table() << Data Filter(
Location( {37, 37} ),
Add Filter(
columns( :Type, :Year ),
Display( :Type, Size( 160, 90 ), List Display ),
Display( Size( 394, 16 ), :Year )
)
);
再:スクリプト:コンボボックスフィルタを持つデータテーブルのサブセットこれは私がコンボボックスを使用する際に立つところです、それは大きな混乱です...
dt =現在のデータテーブル()。
Column(dt、"Coll Date")<<データ型( "Character"、Informat( "d / m / y")、フォーマット( "m / d / y"));
Column(dt、"Coll Date")<<モデリングタイプ( "Continuous");
Column(dt、"Coll Date")<<注文(昇順);
要約する(a = By(:患者ID1))。
に挿入(a、""、1);
//要約(b = By(:Coll Date));
date =連想配列((::Coll Date <<値を取得))<<キーを取得。
新しいウィンドウ( "例"、
<<モーダル、
Hリストボックス(
パネルボックス( "患者IDの選択:"、
cb1 =コンボボックス(
、
<< SetFunction(
関数({this}、
selection = this << Get Selected();
r = //各行について(選択(行状態()=:患者ID1 ==番号(選択)));
dt << Get Rows where(:患者ID == Num(選択));
要約する(b = By(:Coll Date [r]));
b <<データ型( "文字"、情報( "d / m / y")、フォーマット( "m / d / y"));
// b =連想配列((::Coll Date [r] <<値の取得))<<キーの取得。
// startDate =連想配列((date [r] <<値の取得))<<キーの取得。
cb2 << Set Items(date [r]);
)
)
)
)
パネルボックス( "開始日を選択してください:"、
cb2 =コンボボックス(
b、
<< SetFunction(
関数({this}、
one = this << Get Selected();
g = dt <<ここで行を取得(:Coll Date> one);
要約する(c = By(:Coll Date [g]));
endDate =:Coll Date [g];
cb3 << Set Items(endDate);
)
)
)
)
パネルボックス( "終了日の選択:"、
cb3 =コンボボックス(
b、
<< SetFunction(
関数({this}、
two = this << Get Selected()))
)
)
)
;
各行について(
選択(行状態())=:患者ID1 == Char(選択)&形式(:Coll Date、"m / d / y")> = one
&形式(:Coll Date、"m / d / y")<= 2
;
subdt = dt << Subset(Columns(:Patient ID1、:DOB、:Coll Date)、出力テーブル名( "サブセット")、);
subdt <<並べ替え((:Coll Dateによる)、テーブルの置き換え);Re:スクリプト:コンボボックスフィルターを使用したデータテーブルサブセットサブセットテーブル部分を表示するスクリプトをどのように作成しますか?