在SAS,我已經運行一個簡單的線性迴歸和輸出我的結果3210(列包括殘差,預測,標準誤差)使用以下代碼返回只有一行:SAS MERGE
proc reg data=model_file;
model &y = &x;
output out=work.outdata r=resid;
title 'model';
run; quit;
我想將此輸出數據加回到原始數據集work.modeldata
。我想加入的ID是u_id
。我用下面的代碼在同一個宏可以這樣做:
data work.mergedf;
merge work.modeldata work.outdata;
by u_id;
run;
不過,我最近被合併的數據集只包含一個行(我有幾千行),與u_id = 1
- 該行確實是合併雖然正確。我瀏覽了SAS文檔here,並相信我已經正確地對數據集進行了排序 - 所有ID均按升序排序並似乎與每個數據集匹配。但是,日誌文件返回相同的錯誤:
ERROR: BY variables are not properly sorted on data set WORK.MODELDATA.
我真的在對什麼是造成這個問題的損失。我試圖使用PROC SORT
,但日誌文件有沒有人有任何見解,爲什麼只有一行被返回?
編輯:感謝喬的建議(看看接受的答案),我能夠得到這個工作。下面是我用最後的代碼生成了正確的合併:
proc sort data=work.model_file; by u_id; run;
proc sort data=work.outdata; by u_id; run;
data work.merged_data;
merge work.model_file work.outdata;
by u_id;
run;
MODELDATA從哪裏來?您的PROC REG只能引用MODEL_FILE和OUTDATA。 –
@data_null_這是一樣的。我只是重新命名了它,並忘記在發佈到SO時更改變量名稱。 –
什麼變量是'U_ID',爲什麼你會認爲在你的代碼中提到的三個數據集中的任何一個都會被該變量排序? – Tom