大きなデータセット(> 20GB)にSASを使用しています。私がDATAステップを実行すると、同じ変数でデータセットをソートしたにもかかわらず、 "BY変数が正しくソートされていません......"というメッセージが表示されました。既にソートされていますが、BY変数が正しくソートされていません。
proc sort data=output.TAQ;
by market ric date miliseconds descending type order;
run;
options nomprint;
data markers (keep=market ric date miliseconds type order);
set output.TAQ;
by market ric date;
if first.date;
* ie do the following once per stock-day;
* Make 1-second markers;
/*Type="AMARK"; Order=0; * Set order to zero to ensure that markers get placed before trades and quotes that occur at the same milisecond;
do i=((9*60*60)+(30*60)) to (16*60*60); miliseconds=i*1000; output; end;*/
run;
、エラーメッセージがいた:私はSORT再びPROCを実行した場合は、SASにも言った、「入力データセットがすでにソートされ、行われませソートは」 私のコードではありません、あなたのソースの場合
ERROR: BY variables are not properly sorted on data set OUTPUT.TAQ.
RIC=CXR.CCP Date=20160914 Time=13:47:18.125 Type=Quote Price=. Volume=. BidPrice=9.03 BidSize=400
AskPrice=9.04 AskSize=100 Qualifiers= order=116458952 Miliseconds=49638125 exchange=CCP market=1
FIRST.market=0 LAST.market=0 FIRST.RIC=0 LAST.RIC=0 FIRST.Date=0 LAST.Date=1 i=. _ERROR_=1
_N_=43297873
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 43297874 observations read from the data set OUTPUT.TAQ.
WARNING: The data set WORK.MARKERS may be incomplete. When this step was stopped there were
56770826 observations and 6 variables.
WARNING: Data set WORK.MARKERS was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
real time 1:14.21
cpu time 26.71 seconds
ログにエラーメッセージが表示されました:代わりにそれをソートする
たぶん、あなたのような何かが、いくつかの手順にそれを破ることができますか? – user667489
確かにログの詳細を見る必要があります。観測数は非常に奇妙です - あなたは 'first.dateならば、マーカーはoutput.taqのサブセットでなければなりませんが、処理が停止する時点で〜43.3m obsがoutput.taqと〜56.8から読み取られましたmは書かれています_out_ work.markers ... – keydemographic
@keydemographic doループの中に出力文があるので、obsカウントはあらゆる種類のことをするかもしれません。 – user667489