日付の場所を選択データセットのサブセットを作成しようとしています。分析のために開始日と終了日以外の日付を選択し、そのような日付を除外したいと考えています。なぜこれがうまくいかないのか分かりませんが、簡単に思えます。数値形式の問題だと思いますか?
CalendarBox() の日付として StartDate と EndDate があります
:Date は、m/d/y 形式の数値日付の列です。
私はこれを試してみましたが成功しませんでした:
BegTime = dt<< Subset(All rows, Selected columns only( 0 ) );
BegTime << Select Where(:Date < Informat(StartDate) |:Date > Informat(EndDate))<<EXCLUDE></EXCLUDE>
列を確認するために、これ(以下)を試しましたが、結果が得られませんでした。ただ "。
BegTime <<NEW column=""></NEW>
Re: 日付の場所を選択してくださいあなたの問題は、StartDate と EndDate が数値の日付であると考えていることだと思います。コードを作成した方法では、StartDate と EndDate はオブジェクトへのポインターです。オブジェクトから日付値を抽出し、選択した変数に配置する必要があります。また、モーダルウィンドウを使用すると、選択する日付の選択肢の範囲の設定などの処理が実行されません。そのため、その制限も削除しました。したがって、以下のスクリプトのロジックに従うと、モーダル ウィンドウを使用せずに処理コントロールを処理する方法がわかります。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Time Series\Raleigh Temps.jmp" );
dt << clear row states;
startNW = New Window( "Start Date of Data",
StartDate = Calendar Box(),
Button Box( "OK",
startNW << close window;
runEndDate;
)
);
StartDate << Max Date( Col Max( :name( "Month/Year" ) ) ) << Min Date( Col Min( :Name( "Month/Year" ) ) );
StartDate << Set Function( Function( {this, date}, theStartDate = StartDate << Get Date ) );
runEndDate = Expr(
endNW = New Window( "End Date of Data",
EndDate = Calendar Box(),
Button Box( "OK",
endNW << close window;
runSelect;
)
);
endDate << Max Date( Col Max( :name( "Month/Year" ) ) ) << Min Date( Col Min( :Name( "Month/Year" ) ) );
EndDate << Set Function( Function( {this, date}, theEndDate = endDate << Get Date ) );
);
runSelect = Expr(
dt << select where( :Name( "Month/Year" ) < theStartDate | :Name( "Month/Year" ) > theEndDate )
);Re: 日付の場所を選択してください:Date は、1904 年 1 月 1 日からの秒数です。 「m/d/y」形式を削除すると、CalendarBox() の数値と同様の数値になります。
ただし、これらの数値を互いに減算することさえできません。非常に混乱?
Re: 日付の場所を選択してくださいはい、うまくいきません。 :Date の値が JMP カレンダーの box() の値と異なる可能性はありますか?
これが私が計算する方法です:日付
dt<< new column ("Date", numeric, continuous, format("m/d/y"), formula(
Date MDY(
Num( Substr( :TimeStamp, 1, 2 ) ),
Num( Substr( :TimeStamp, 4, 2 ) ),
Num( Substr( :TimeStamp, 7, 4 ) ) )
));
:TimeStamp は、01:28:2018::02:14:08:099 の形式の文字です。
StartDate と EndDate は次のとおりです。
new window("Start Date of Data",<<MODAL></MODAL>Re: 日付の場所を選択してくださいJMP の日付値 (数値、1904 年 1 月 1 日からの秒数) である日付データを扱っていると仮定しています。そのため、数値以外の値に変換する必要はありません。したがって、以下は機能するはずです
BegTime = dt<< Subset(All rows, Selected columns only( 0 ) );
BegTime << Select Where(:Date < StartDate |:Date > EndDate)<<EXCLUDE></EXCLUDE>