#SAS学习-开篇

最近因为工作需要,本人也是在快速上手sas软件,主要看的书籍还是围绕着“市面上”比较流行通用的“the little sas book"以及"深入解析sas"这两本,因为需要快速上手,所以学得也比较快速,正所谓好记性不如烂笔头,还是就这些内容,自己做一些总结性的文章,方便大家学习以及自己往后的查看。(也是因为时间紧凑,排版方面,就随意啦哈哈哈)

0?wx_fmt=jpeg

一、SAS初步介绍

以下内容摘选自百度百科:SAS(全称STATISTICAL ANALYSIS SYSTEM,简称SAS)是全球最大的软件公司之一,是由美国NORTH CAROLINA州立大学1966年开发的统计分析软件,是一个模块化、集成化的大型应用软件系统,功能包括数据访问、数据储存及管理、应用开发、图形处理、数据分析、报告编制、运筹学方法、计量经济学与预测等等。

基本上可以分为4大部分:SAS数据库部分;SAS分析核心;SAS开发呈现工具;SAS对分布处理模式的支持及其数据仓库设计,同时也是开发了好多好多的模块,目前对于数据分析比较常用的模块主要集中在base sas模块。

sas语句相对于Java,Python来说都是相对简单的,有以下几点常见的规则:

  • 每一个SAS语句都由一个分号结尾,

  • SAS语句不区分大小写。

  • 一条语句可以持续到第二行(只要不把一个单词分开)。

  • 几条语句可以用一行。

二、sas数据集

1)变量和观测值:

在传统的SAS术语中,数据包括变量和观测值。采用相关的数据库的术语,SAS数据集也被叫做表、观测值也被叫做行、变量也被叫做列,你可以看到下面这个包含一些数据的表。

0?wx_fmt=png

2)数据类型:

只有两种数据类型——数值型和字符型。数值型完全是数据,可以被加减乘除、可以是正负且是小数。字符变量是除数值之外的类型,可以是数值、字母、和一些特殊的字符(¥、!),最多可以占用32767个字节长度。

如果一个变量既包括数字又包括字符,那么它一定是字符变量。如果只包括数字,可能是字符变量也可能是数值变量。在上面这个表中,姓名是字符变量,身高和体重是数值变量,ID,既可能是数值有可能是字符,依据你的选择。

3)缺失值:

字符变量的缺失值用空格表示,数值变量的缺失值用句号(.)表示。

4)SAS命名规则:

为你的变量和数据集命名,使它们容易被辨别。为变量和数据集命名时要遵守如下规则:

  • 名字的长度要小于等于32个字节。(一个字母1个字节,一个汉字2个字节)

  • 以字母或下划线开头。

  • 可以包含字母、数字、或者是下划线,不能是%$!*&#@。

  • 可以是小写或大写字母,且不区分大小写。

5)sas文件:

  • SAS数据集文件(后缀为sas7bdat)

  • SAS程序文件(后缀为sas)

  • SAS日志文件(后缀为log)

  • SAS输出文件(后缀为list)

6)数据集类型:

分为临时数据集和永久数据集,一般来说没有特意去存放的数据集都是默认在临时数据集work中,关闭sas软件后将会被清空,若想保存数据集,用户可以根据自己的需求,创建属于自己的数据集并将数据永久存放在这个数据集中。

三、数据步与过程步

SAS程序有两个基本模块:数据步和过程步。一个典型的SAS程序,由数据步创建SAS数据集开始,再由过程步分析数据。

这里有一个例子:数据步中将米转化成千米,过程步中输出结果。

0?wx_fmt=png

数据步负责读取、修改数据,过程步负责分析数据、输出报告和效用函数。

数据步由DATA语句开始:data+数据名。上例中数据步处理了名为distance的数据。为了读取外部数据、未加工的数据,数据步提供了DO LOOPS,IF-THEN/ELSE,以及一些数值和字符函数。数据步也可以按照你想要的方式合并数据集,包括联接(concatenation)和合并(match-merge)。

过程步由proc语句开始:proc+过程名(print、sort、means…),SAS过程步可以处理从数据储存、输出到方差分析、3D图表的一切操作。

当程序遭遇DATA\PROC等标志着新程序开始的语句时,程序结束。如果运行的是批处理,则run代表语句的结束。Run告诉SAS去执行所有之前的程序行,全局变量不是DATA或PROC过程的部分。上图的那个程序,当proc出现时,代表data过程结束。

0?wx_fmt=png

四、数据导入

数据导入的方式大致可以分成3种,一种是使用人工input的方式,二是连接数据库进行数据导入,三是导入其他的文件格式的数据(一般常用的是csv,xls等),而这3种方式都是有对应的方法来进行操作的。下面我将罗列集中常用的方式吧。

1)向导方式导入:

这个办法最为简单了,只要根据指引一步一步操作就OK了,从文件(file)下拉菜单中选择导入数据(import data)导入向导(ImportWizard)

2)代码导入:

使用sas代码导入的语法主要为import,infile等

/* 使用import导入Excel文件*/

proc import out = Practice.app2

    datafile = "F:\homework\XXX.xls"

dbms = excel replace;

  sheet = "Sheet$";

  getnames = yes;

  format DESIRED_LOAN_AMOUNT comma15.2

  ACCPT_MAX_REPAYMENT comma15.2

  apply_date: mmddyy10.;

/* 使用infile导入csv文件*/

data practice.app4;

infile 'F:\homework\XXX.csv'

delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ;

informat DESIRED_LOAN_AMOUNT 15. ACCPT_MAX_REPAYMENT 15. DESIRED_PRODUCT_NAME $20.

            ID $10. mob $11. apply_date 10.;

format DESIRED_LOAN_AMOUNT COMMA15.2 ACCPT_MAX_REPAYMENT COMMA15.2

          DESIRED_PRODUCT_NAME $20. apply_date MMDDYY10. mob $11.;

INPUT DESIRED_LOAN_AMOUNT ACCPT_MAX_REPAYMENT DESIRED_PRODUCT_NAME

            ID apply_date mob ;

RUN;

0?wx_fmt=jpeg

今晚也比较晚了,就先总结一部分内容,明晚有空再继续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值