【SAS BASE】利用FILE语句和PUT语句输出简单报告

                            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;
原文地址:https://www.cnblogs.com/chenyn68/p/3866343.html