設定SAS變數的輸入和輸出格式
阿新 • • 發佈:2018-12-12
一、日期變數與財務資料變數
- 不設定輸出格式
data bank2;
input @1 no $3.
@4 time mmddyy10.
@14 gender $1.
@15 money 7.;
datalines;
00110/21/1955M 1145
00211/18/2001F 18722
00305/07/1944M 123.45
00401/01/1960F -12345
;
title'bank of new information';
/*沒有對日期的輸出格式進行設定,就會顯示具體離1960年1月1日的天數*/
proc print data=bank2 noobs;
run;
- 設定輸出格式
data bank2; input @1 no $3. @4 time mmddyy10. @14 gender $1. @15 money 7.; datalines; 00110/21/1955M 1145 00211/18/2001F 18722 00305/07/1944M 123.45 00401/01/1960F -12345 ; title'bank of new information'; /*修改日期的輸出格式,財務資料加上美元符號或者逗號*/ proc print data=bank2 noobs; /*mmddyy10.也可以改成date9.*/ format time mmddyy10. money dollar11.2; run;
- 輸出結果
不設定輸出格式
設定輸出格式
二、列輸入方式、新增label、使用者自定義的format
- 問題的來源
來自經管之家的提問:怎樣批量輸入有格式的變數? 連結:新增連結描述 2. 無label和format
data suvey; input subj:$3. gender: $1. age:2. salary:6. (ques1-ques5)($1. +1); cards; 001 M 23 28000 1 2 1 2 3 002 F 55 76123 4 5 2 1 1 003 M 38 36500 2 2 2 2 1 004 F 67 128000 5 3 2 2 4 ; run; proc print data=suvey noobs; format salary dollar11.2; run;
- 新增label和自定義format
data suvey; input subj:$3. gender: $1. age:2. salary:6. (ques1-ques5)($1. +1); label subj='工號' gender='性別' age='年齡' salary='薪水' Ques1='The governor is doing a good job?' Ques2='The property tax should be lowered' Ques3='Guns should be banned' Ques4='Expand the Green Acre program' Ques5='The school needs to be expanded'; cards; 001 M 23 28000 1 2 1 2 3 002 F 55 76123 4 5 2 1 1 003 M 38 36500 2 2 2 2 1 004 F 67 128000 5 3 2 2 4 ; run; proc format; value $ gender 'M'='Male' 'F'='Female' ' '='Not entered'; value age low-29='Less than 30' 30-50='30 to 50' 51-high='51+'; value $likert '1'='Strongly disagree' '2'='Disagree' '3'='No opinion' '4'='Agree' '5'='Strongly agree'; proc print data=suvey ; *若想要輸出變數的標籤資訊,可以寫成括號裡面的資訊(proc print data=suvey label;); id subj; var gender age salary Ques1-Ques5; format Gender $gender. Age age. Ques1-Ques5 $likert. Salary dollar11.2; run;
- 執行結果
無label和format的結果
新增label和自定義format(不輸出label)
新增label和自定義format(輸出label)
解讀程式碼中一些語句
第一個:符號@ 符號@稱為列指標(Column Pointer),@4就是告訴SAS,指到第4列。
第二個:使用者自定義format的格式 PROC FORMAT; VALUE format-name Data-value-1 = ‘Label 1’ Data-value-2 = ‘Label 2’; VALUE format-name-2 Data-value-3 = ‘Label 3’ Data-value-4 = ‘Label 4’; …; RUN; 備註:來自新增連結描述
感謝和參考
書籍《Learning_SAS_by_Example,_A_Programmers_Guide》
其他
如有冒犯您的資訊,請聯絡作者qq:359678664刪除文章。