変数の値を別の変数の値に設定しようとしていて、元の変数の名前を変更してから、次のコードを使用してマージします。(MK_RETURN_DATA
RETURNOUTSET
のサブセットです。ちょうどMK_RETURN_DATA
とRETURNOUTSET
をマージして、MK_RETURN_DATA
の変数の名前を変更しました。SAS変数を別の変数と同じに設定して名前を変更してからマージする
data RETURNOUTSET;
CUM_RETURN = return_sec;
run;
PROC SQL;
CREATE TABLE MK_RETURN AS
SELECT a.*
FROM
RETURNOUTSET a
WHERE a.SYMBOL = 'SPY';
QUIT;
DATA MK_RETURN_DATA;
SET MK_RETURN;
RENAME RETURN_SEC=MK_RETURN_RATE;
DROP SYMBOL;
RUN;
proc sort data=MK_RETURN_DATA; by Date Time; run;
proc sort data=RETURNOUTSET; by Date Time; run;
data WITH_MARKET;
merge RETURNOUTSET(IN=C) MK_RETURN_DATA(IN=D);
by Date Time;
if C;
run;
しかし、私はWITH_MARKET
に記号「A」とのデータの最初のブロックでは非常に奇妙な結果を取得しています。 CUM_RETURN
の値は実際にはMK_RETURN_RATE
の値に等しいですが、私はそれがreturn_sec
であることを望んでいました。
どうしましたか?
代わりにwhere =(x_symbol = 'SPY')はどこでなければならないのですか? –
はい。覚えておくべき重要なことは、データセットオプションがアルファベット順のプロセスであることです。したがって、WHEREの前にRENAMEの前にKEEPを保存してください。 – Tom