INFILE FILE
INPUT INFILE
Raw Data File(原始數據)----------------> SAS Data Set----------------->Raw Data Set
一、利用FILE語句和PUT語句輸出簡單報告
1 DATA _NULL; /*_NULL_使得系統不需要生成一個新的數據集,以節省內存*/ 2 INFILE 'C:\MYRAWDATA\Candy.dat'; 3 INPUT Name $ 1-11 class @15 DateReturned MMDDYY10. Candytype $ Quantity; 4 Profit=Quantity*1.25; 5 6 /*重點:利用FILE和PUT輸出報告*/ 7 FILE 'C:\Myrawdata\student.txt' PRINT; /*FILE語句指定REPROT的輸出路徑,PRINT選項告訴SAS to include回車和分頁符*/ 8 TITLE;/*零TITLE語句命令SAS消去所有默認的標題*/ 9 PUT @5 ‘Candy sales report for ' Name 'from classroom' Class 10 //@5 'Congratulations! You sold' Quantity 'boxes of candy 11 /@5 'and earned' profit DOLLAR6.2 'for our field trip'; 12 PUT _PAGE_;/*在每個學生的報告中插入分頁符*/ 13 RUN;
【備注】:
- PUT語句和INPUT語句類似,可以是list、column或者是formatted style, 但是由於SAS已經知道變量時數值型還是字符型,那么就不用再字符型變量的后面加上$了;
- 跟例子一樣,可以在字符串與變量拼在一起輸出。
- 若用戶使用了list format,SAS則自動為每個變量之間放入空格,產生space-delimited文件。此時,若用戶需要填寫其他分隔符文件,可通過list-style PUT語句和FILE語句中的DSD=和DLM=選項來實現。
1 FILE ‘file-specification’ DSD DLM='delimiter';
- 若用戶使用了column或者formatted 格式,SAS會像INPUT語句那樣將變量放在用戶指定的位置。(工具:@n,+n,/,#n,@)
1 LIBNAME travle 'C:\MySASLib'; 2 DATA travel.golf; 3 INFILE 'C:\MyRawdata\golf.dat'; 4 INPUT CourseName $18. numberofholes par yardage greenfees; 5 RUN; 6 7 DATA _NULL_; 8 SET Travel.golf; 9 FILE 'C:\MyRawData\Newlife.dat'; 10 PUT CourseName 'Golf Course' @32 Greenfees DOLLAR7.2 @40 'Par' par;/*字符串會嵌入到每一行SAS數據中去*/ 11 RUN;