sas简单使用

Posted xiexiaoxiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sas简单使用相关的知识,希望对你有一定的参考价值。

1 数据存取:

  逻辑库: libname  自己起的名字 ‘文件所在的路径’,若无这步数据则存在默认的work中。

         另一个方法在sas里自己建立一个逻辑库,但是关闭后就消失了。

  新建数据:data  表名

  引用数据:set 表名

不区分大小写
libname diabete ‘C:\\Users\\lenovo\\Desktop\\sas_program‘; /*diabete :自己起的逻辑库名字*/
data diabete.diabetes_female;                         /*diabetes_female:自己起的表名*/
set diabete.diabetes(keep=id sex age);          /*diabetes:使用的表名,也就是数据来源,
keep:需要保留的字段, drop:舍弃的,默认是全有的
*/   length Group $ 8 /* length:变量起名,group:自己起的字段名,8字符*/ if age>=55 then group=‘Seniors‘; /*if then else*/ else group=‘Under 55‘;
price = 44.7 /*常量正常赋值*/ run;

2 筛选数据的语句:

  * if , select(存在互斥的条件时)

 

  *比较运算符和逻辑运算符:

  技术分享图片                         技术分享图片

3 日期的处理(sas默认格式为数字)

  日期:初始值为1960-1-1

       时间值:午夜12点算起,0-86400

例子:打印出技术分享图片

 

 

表单为:

 3.技术分享图片

 

实现如下

技术分享图片

 

   /*************************************/
   /* set system options for report     */
   /*************************************/
options nodate nonumber; 
   /*************************************/
   /* create temporary data set         */
   /*************************************/
data test;
   Time1=86399;
   format Time1 datetime.;
   Date1=86399;
   format Date1 date.;
   Time2=86399;
   format Time2 timeampm.;
   Date1Month=month(Date1);
run;
   /*************************************/
   /* print data set                    */
   /*************************************/
proc print data=test noobs;
   title ‘Same Number, Different SAS Values‘;
   footnote1 ‘Time1 is a SAS DATETIME value.‘;
   footnote2 ‘Date1 is a SAS DATE value.‘;
   footnote3 ‘Time2 is a SAS TIME value.‘;
   footnote4 ‘Date1Month is the numeric month for Date1.‘;
run;

   /*************************************/
   /* clear any titles and footnotes    */
   /* in effect          实际没看出差别         */
   /*************************************/
title;
footnote;
 

3 打印:

/*************************************/
   /* set system options for report     */
   /*************************************/
options nodate pageno=1 linesize=64 pagesize=60;

   /*************************************/
   /* sort the data and create a        */
   /* temporary output data set         */
   /*************************************/
proc sort data=pilots out=tempemp;
   by jobcode gender;
run;
       
   /*************************************/
   /* print the sorted data set         */
   /*************************************/
proc print data=tempemp split=‘*‘;
   id jobcode;
   by jobcode;
   var gender salary;
   sum salary;
   label jobcode=‘Job Code*========‘
         gender=‘Gender*======‘
         salary=‘Annual Salary*=============‘;
   format salary dollar11.2;
   where jobcode in (‘PT1‘,‘PT2‘);
   title ‘Expenses Incurred for‘;
   title2 ‘Salaries for Pilots‘;    
run;

 



以上是关于sas简单使用的主要内容,如果未能解决你的问题,请参考以下文章

SAS通过数组或一些简单的方法创建多个数据集

使用文件中的代码作为 SAS 宏变量的内容

sas将几分几秒转化为秒

创建自己的代码片段(CodeSnippet)

如何转换要在 R 中打开的 SAS (.sas) 文件? [关闭]

为啥这段代码会泄露? (简单的代码片段)