INFILE FILE
INPUT INFILE
Raw Data File(原始数据)----------------> SAS Data Set----------------->Raw Data Set
一、利用FILE语句和PUT语句输出简单报告
1 DATA _NULL; /*_NULL_使得系统不需要生成一个新的数据集,以节省内存*/ 2 INFILE 'C:MYRAWDATACandy.dat'; 3 INPUT Name $ 1-11 class @15 DateReturned MMDDYY10. Candytype $ Quantity; 4 Profit=Quantity*1.25; 5 6 /*重点:利用FILE和PUT输出报告*/ 7 FILE 'C:Myrawdatastudent.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:MyRawdatagolf.dat'; 4 INPUT CourseName $18. numberofholes par yardage greenfees; 5 RUN; 6 7 DATA _NULL_; 8 SET Travel.golf; 9 FILE 'C:MyRawDataNewlife.dat'; 10 PUT CourseName 'Golf Course' @32 Greenfees DOLLAR7.2 @40 'Par' par;/*字符串会嵌入到每一行SAS数据中去*/ 11 RUN;