我正在從應用統計和SAS編程的練習12.6。註釋:使用列輸入,讀取NAME,GENDER和DOB,其中NAME在第1-10列中,Gender在第12列中,DOB在第13-22列中。請注意,對於列輸入,您必須將出生日期作爲字符讀取。你可以使用下面的例子(我試圖寫這個)。閱讀數據行後缺少數據
a)將出生日期定義爲角色是一個好主意嗎?爲什麼? 我的回答:不,不是一個好主意,因爲我們可以使用這個日期,在其他更進一步的方程中以直接的方式進行計算。
b)將DOB從字符更改爲數字並計算該人的實際日期。
我試着用這個代碼來解決這個問題:
DATA PROB12_6;
INPUT NAME $ 1-10
GENDER $ 12
DOB $ MMDDYY10. 13-22;
AGE=yrdif(input(dob,mmddyy10.),today(), 'Age');
DATALINES;
1 2
Cody M05/11/1981
McMaster F11/11/1967
Bill Smith M12/25/1999
;
PROC PRINT DATA=PROB12_6 (FIRSTOBS=4);
RUN;
我的產量只有名字,在其他變量空值。
我研究了使用絕對列指針,但我沒有運氣。
歡迎。請充分解釋您的目標以及您的預期產出。您是否正在通過示例使用Learning SAS:Ron Cody的程序員指南?這可能有助於添加完整的標題。 – LJW
DOB不應作爲字符讀取,日期以數字形式存儲。你可能在日誌中收到錯誤,你可以發佈嗎? – Reeza
是的,這是事實,但如果我沒有曲解練習說的話,必須輸入類似的字符,然後在代碼中改變它並使用它來計算年齡。但是我卡在打印部分,只有打印名稱。我希望現在更清楚。謝謝。 – DarioC