SAS DATA步需要RUN吗?RUNsql查询语句大全讲解有什么用?

        SAS是现今非常流行的数据分析和数据挖掘软件,想从事数据分析行业,掌握SAS很有必要。虽然SAS本身提供了丰富的人机交互界面,通过手动调用各个Menu能方便地完成数据统计分析的任务,但是,通过代码来调用各个功能模块无疑能为工作带来巨大的灵活性,并显著提高效率。
    本文主要是根据网上找到的一个电子文档《SAS语句简介》(可能是某本书的其中一章)以及朱世武老师的《SAS编程技术教程》整理而成。
    SAS 程序通常分为数据步和过程步,一段SAS 程序根据目的和需要可以有0到多个数据步(Data)和0到多个过程步(Proc),还可以有系统选项语句、ODS语句等全局语句。
        1.数据步(Data Step)
        以关键词Data 开头,可由多条语句构成,结束标志可以是空语句、Run 语句、过程步或下一步数据步。
          数据步功能有:
    (1)从外部文件中读取数据;
    (2)将数据写入到外部文件中;
    (3)读取SAS数据文件和视图;
    (4)创建SAS数据文件和视图。
    2.过程步(Proc Step)
    以关键词Proc 开头,可由多条语句构成,结束标志是Run或Quit 语句。过程步的功能有:
    (1)调用 SAS 过程(SAS Procedures)分析和处理SAS数据集形式的数据,或执行其他分析;
    (2)将分析结果以报表、图表的形式输出,或输出成 SAS数据集、外部文件;
    (3)生成SQL查询;
    (4)数据操作和管理。
    下面是一段代码示例,通过注释可以看出怎样写SAS语句。
1 /****************************\
2 | 10名学龄儿童的身高体重资料 |
3 \****************************/            /*这三行都是注释,SAS中的注释跟C语言一样,是用/*和*/来包括的*/
4 OPTIONS nodate number=0;                    /*系统选项语句,nodate参数指定不在结果标题中显示时间,number=0也可以写成nonumber,指定不在标题中显示页数*/
5 DATA SASTJFX48_1;                                   /*数据步,以Data开始,SASTJFX48_1是用户自定义的SAS数据集的名字*/
6   INPUT name $ height weight @@;        /*INPUT创建变量、读取数据值、给变量赋值的语句,name,height,weight是用户自定义变量,$表示name是字符变量,*/
                                                                           /*@@是读取数据值的指针控制符号,指定在同一个数据行可以读取2个以上的观测数据*/
7   BMI=weight/(height/100)**2;              
8 LABLE BMI=‘body mass index’;           /*通过“LABEL”语句设置变量BMI 的标签为“body mass index”*/
9 DATALINES;                                                  /*指DATALINES单独占一行,指定其后为数据行*/
10 WangHB 149.4 30.8 WuCJ 167.6 46.6    /*此处开始为数据行*/
11 ChenF 146.3 33.1 GaoSY 170.7 44.0         12 ZhanZL 161.5 36.3 LiYZ 164.6 40.8
13 ShenJJ 155.5 36.7 ZhaoJH 158.5 35.4
14 ZhangHX 149.4 33.1 WangXS 156.4 31.8
17 ODS HTML;                                                  /*ODS为输出语句,指定以HTML语句的格式输出*/
18 PROC MEANS data=SASTJFX48_1;       
/*PROC指示过程步的开始,后接过程名,MEANS为SAS过程名,’data’为数据集选项,*/
                                                                          
/*指定过程步分析的数据集为SASTJFX48_1*/
19   VAR                                                    /*VAR后跟变量名,指定分析的变量*/
20   OUTPUT out=result mean=BMI   /*OUTPUT为将运行结果输出,out后为用户自定义的输出数据集名,mean为结果中的均数名,=后面是用户自定义的输出名*/
22 PROC PRINT data=result (keep=BMImean); /*调用PRINT过程在窗口显示result数据集,keep=是数据集选项,指定保留的变量*/
23 FORMAT BMImean 4.1;               /*FORMAT规定变量的输出格式,其后是变量名和输出格式,4.1表示标准数值型数据输出格式*/
ODS HTML CLOSE;                            /*与17行的ODS成对出现的语句,指示关闭HTML格式的输出*/
    3.SAS程序书写规则
    SAS程序在书写的时候要遵循如下几点规则:
    (1)每条SAS语句以分号(;)结尾;
    (2)SAS语句可以从任何一行、任何一列开始,一行上可以写多条SAS语句;
    (3)一条SAS语句可以写在多行上,但不能把一个语法单位分开写在不同的行上;
    (4)一般情况下,一条语句中不同的语法单位要用空格或换行符分隔,但是一些字符的前方或后方,可以不用空格分隔,SAS可以自动分析语句结构、识别语法单位;
    (5)SAS语句书写不区分字母的大小写,但在一些特殊场合除外。
    4.SAS的注释
    下面的一幅图片很好的解释了SAS的注释语句。
        5.SAS命名规则
    SAS要遵循如下的命名规则:
    (1)SAS 名以字母或下划线开头,后续字符可以是字母、数字或下划线(同C语言);
    (2)SAS 名依据其使用的场合有一定长度限制,有的部位的SAS 名至多有32 个字节长度,有的部位的SAS 名至多有8 个字节长度;
    (3)SAS 名不区分大、小写,例如BMI、Bmi、bmi 在SAS 名中都是一个词;
    (4)SAS 名中不能出现空格,并且SAS 名中除了字母、数字、下划线外,不能含有其他特殊字符,如#、$、@、%等特殊字符不能出现在SAS 名中;
    (5)SAS 保留了一些自动变量名及变量列表、SAS 数据集名和逻辑库引用名;
        6.SAS变量
    编程语言一般都离不开变量。变量相当于一个容器,用来保存一定结构的数据。SAS变量除了具备常规编程语言所具备的许多共性外,也有一些自己的特点,下面主要讲述它特别的地方:
    (1)SAS中只有两种数据类型--数值型和字符型。变量后加美元号表示该变量时字符型,美元号可以紧跟变量名后面,也可以空格。
    (2)变量默认长度为8个字节,通常一个普通英文字符占一个字节,一个汉字占两个字节;用户可以用Length,Attrib语句修改变量的长度。如果变量第一次出现在表达式左边,则变量长度与表达式右边的结果值的长度一致。
    (3)输出格式:字符型变量默认输出格式是“BEST16.”,数值型变量默认的输出格式是“$w.”,可以用Format,Attrib语句或者Format过程定义或修改变量的输出格式。
    (4)变量次序:指数据步创建或定义变量的次序。
    (5)索引类型:决定这个变量是否是数据集索引的一部分的属性。这个属性可以用Contents 过程的‘OUT=’选项进行定义和修改。
    7.SAS运算符
    8.SAS文件系统
    (1)逻辑库
    逻辑库名是SAS名,长度不能超过8B。建立SAS逻辑库的语句:
    LIBNAME libref &engine& ‘SAS-data-library’
    语法说明:
    libref:逻辑库名
    SAS-data-library:逻辑库对应的物理地址
    engine:引擎名称(缺失时是默认引擎)
    逻辑库又分为临时库和永久库:临时逻辑库指的是内容只在启动SAS时存在,一旦退出SAS时内容完全被删除。系统默认临时逻辑库是work,引用临时库work中的文件时,可以不加库名。永久库当然在SAS关闭后仍旧保留。
    (2)数据集
    SAS数据集分为两类:SAS数据文件和SAS数据视图。SAS数据文件同时描述信息和存储数据值,SAS视图并不实际存储数据,它相当于一个查询语句。
    (3)数据集选项
    数据集选项用在SAS数据集名称后的括号中,多个选项之间用空格隔开。括号中的数据集选项的作用:
    重新命名变量;
    选择需要的观测;
    输出数据集中保留或删除的变量;
    数据集加密。
    语法格式:
    Data-set-name(Data-set-options)
    (option-1=value-1&…option-n=value-n&)
    data scores(keep=team game1 game2 game3);
    /*scores中保留team, game1, game2, game3四个变量*/
    proc print data= new(drop=year);   /*去掉变量year*/
    set old(rename=(date=Start_Date)); /*将date改名*/
   
阅读(...) 评论()医学会议频道
聚焦转化医学和多学科融合
MedSci梅斯医学APP下载
大家还在关注:
第八章 直线回归、直线相关与logistic回归(上)
作者:生物谷&&&来源:不详
Parameter Estimates
Parameter=0
Prob & |T|
参数估计值
估计值的标准误Sb
如果在MODEL语句中使用CLI、CLM选项,则系统输出因变量均值以及个体预测值的95%可信区间上下限,输出如下:
记录号 Y的实测值
预测值 预测值的标准误 可信区间的上下限 个体预测值可信区间的上下限
0.3834Sum of Residuals
Sum of Squared Residuals
残差平方和
Predicted Resid SS (Press)
预测残差平方和
§8.3 CORR过程
CORR过程计算变量间的相关系数,包括Pearson积矩相关系数、Spearman等级相关系数等,同时也可给出一些单变量描述统计结果。
<FONT color=#.3.1 语法格式
CORR过程的语法格式如下:
PROC CORR [选项] ;
 [VAR 变量名列 ;[1]
 WITH 变量名列;[2]
 WEIGHT 变量名;
 FREQ 变量名;
 BY 变量名列;]
<FONT color=#.3.2 语法说明
除了PROC语句为必需,其他语句都是可选的,如果省略所有的可选语句,则对所有变量作相关分析。
VAR语句,可选的语句,定义相关分析的变量
WITH语句,可选的语句,定义分析相关性的另一组变量
【过程选项】
数据集选项
DATA=数据集名 指定要分析的数据集名。
OUTP=数据集名 要求产生一个包含Pearson相关分析结果的新数据集,该选项应和Pearson选项一起使用方有效。
OUTS=数据集名 要求产生一个包含Spearman相关分析结果的新数据集。
相关类型选项
PEARSON 要求计算PEARSON相关,系统在默认的情况下就计算PEARSON相关系数。
SPEARMAN 要求计算SPEARMAN相关,也就是等级相关(秩相关)。如果使用了WEIGHT语句,该选项无效。
NOMISS 去除含有缺失值的所有记录。
NOPRINT 禁止统计结果在OUTPUT视窗中输出。
NOSIMPLE 取消每个变量的简单统计描述。但如果指定了输出数据集,则VAR语句中的每个变量的简单统计描述仍会输出到指定的数据集。
【VAR语句和WITH语句】
VAR语句给出希望计算相关的变量名。若省略该语句,则CORR过程计算指定数据集中所有数值变量间各种组合的相关系数。
WITH语句必须和VAR语句一同使用。如果我们要得到特定变量组合的相关系数,则可在VAR语句中列出相关矩阵上部出现的变量,在WITH语句中列出相关矩阵左侧出现的变量。如有程序步如下:
PROC CORR;
 VAR A B;
WITH X Y Z ;
则产生下列组合的相关系数矩阵:
<FONT color=#.3.3 结果解释
CORR过程的默认输出结果主要包括各个变量的简单统计描述和一个相关系数矩阵。例8.1的CORR过程的具体输出如下: 
Correlation Analysis 
2 'VAR' Variables:
相关阵中的变量有X、Y 
Simple Statistics
简单统计描述Variable
346.600000
217.000000
19.590000 
Pearson Correlation Coefficients / Prob & |R| under Ho: Rho=0 / N = 20
-------矩阵第一列为PEARSON相关系数,第二列为相应的P值。并且该样本的例数为20-----
本例X与Y的相关系数达到-0.83977,检验相关系数检验的P值为0.0001,按α=0.05水准,拒绝H0,接受H1,相关系数检验由统计学意义,血糖和胰岛素之间由直线相关关系。
<FONT color=#.3.4 应用实例
例8.2 下表给出了12名不同年龄(岁,X)妇女的收缩压测量值(mmHg,Y),试进行回归分析。
制作散点图;
(2) 建立由X预报的回归方程,制作回归直线;
(3) 对回归方程及回归系数b进行假设检验;
(4) 绘制的95%可信区间;
(5) 建立单个Y值的预报方程;
(6) 计算积矩相关系数,并进行假设检验。
解:程序如下:
data a.yt4_10;
 input x y @@;
 56 147 ... ... 60 155
 plot y*x y*x/
 symbol1 v=star c=
 symbol2 i=rlcli c=
 model y = x /
GPLOT过程绘制高分辨率的图形,在PLOT语句中作了两层图,用OVERLAY选项让它们在同一坐标系中绘制,第一层图绘制散点图,用星号表示散点,颜色为粉红色;第二层图绘制回归直线和个体预测值95%可信区间,颜色为兰色。用了两个SYMBOL语句分别控制这两层图的输出效果。该过程的输出在GRAPH窗口。
其他两个过程的输出同前类似,不再赘述。
小提示:78%用户已下载,更方便阅读和交流,请扫描二维码直接下载APP
相关资讯:
猜你感兴趣
资讯分类阅读
关注Medsci
免责声明:MedSci(梅斯医学)登载此文出于传递信息目的,并不意味着赞同其观点或证实其描述。内容仅供专业医生学习,不可替代医师诊断或处方,具体诊断和治疗请咨询专科医生,本站不承担由此导致的相关责任。
MedSci备案号
扫码领取IF曲线
IF连续增长的期刊Unit15Sas用在DATA步的控制语句_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Unit15Sas用在DATA步的控制语句
&&上海财经大学经济信息管理系的教材,是SAS书籍里面较好的一本书
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
&#xe64e;加入VIP
还剩12页未读,
定制HR最喜欢的简历
你可能喜欢豆丁微信公众号
君,已阅读到文档的结尾了呢~~
第2章sas 编程入门
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第2章sas 编程入门
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口sas数据集是由sas创建并且处理的文件
浏览描述部分
contents过程可以显示sas数据集的描述部分
procproc contents DATA=SAS-data-set +变量名;
SAS逻辑库就是SAS文件的集合。
如果将SAS逻辑库看成是文件柜中的一个抽屉,那么一个SAS数据集就是抽屉中众多文件夹之一。
逻辑库引用名(libref)
work是SAS的临时库,如果我们直接创建data数据集,而没有写libref时,默认的是创建了一个临时数据集,此时对应的逻辑库就是Work逻辑库;
SAS中也有永久库,叫做sasuser,当然我们也可以创建自己的逻辑库,
LIBNAME libref "SAS-data-library"&option&
libname orion "s:\workshop";
其中orion是逻辑库名,”s:\workshop”是指SAS数据库中物理位置。
在这个我们自己创建的逻辑库中,每个SAS文件有一个二级名称。
数据集orion.sales是orion逻辑库的一个SAS文件
第一级名称:libref指引到逻辑库中;
第二级名称:指引到逻辑库中的文件;
变量值的类型:分为数值型变量和字符型变量
缺失值:字符型缺失值显示为空格,数值型缺失值显示为句点
浏览数据部分
proc print data=数据集名称 +需要浏览的变量;
浏览数据部分和浏览描述部分是不一样的,注意区分开开
PROC PRINT DATA=SAS-data-set NOOBS;
VAR variable(s);
NOOBS选项去掉了报告左侧的观测数列,即obs一列
Var语句选择报告中显示的变量及顺序。
默认情况下,proc print 显示以下内容:
所有观测,所有变量和左侧增加的类似于一个编号类的Obs一列,叫做观测类吧,我猜
读取数据集
读入数据简介
SAS数据集加工
读入Excel工作表
读取带分隔符的原始数据文件
访问关系型数据库
这一节内容的话是我们处理数据的第一步,也就是接触数据的部分,我们的数据来源在这里分成了三种情况,第一种是本来就是SAS数据集,第二种是excel数据,第三种是带分隔符的原始数据,也就是csv数据。
读入SAS数据集
LIBNAME libref 'SAS-data-library';
DATA output-SAS-data-set;
SET input-SAS-data-set;
WHERE where-expression;
KEEP variable-list;
LABEL variable = 'label'
variable = 'label'
variable = 'label';
FORMAT variable(s)
data work.subset1;
set orion.
where Country='AU' and
Job_Title contains 'Rep';
keep First_Name Last_Name Salary
Job_Title Hire_D
label Job_Title='Sales Title'
Hire_Date='Date Hired';
format Salary commax8. Hire_Date ddmmyy10.;
下面就讲解这段代码,首先解释几个语句。
这是我们之前就提到的逻辑库的概念,也就是你的文件夹的名字,你的数据是放在哪个文件夹中的。
如果正在读入或者创建一个永久数据集,则需要分配逻辑库的引用名(libref)
libname orion 's:\workshop';
这里是读入SAS数据集。
这里的orion是逻辑库名,
‘s:\workshop’;是SAS数据库的物理位置。
libname orionxls 's:\workshop\sales.xls';
这里的orionxls是逻辑库名,
’s:\workshop\sales.xls’;是指excel工作表的物理文件名,包括路径、文件名和扩展名。
data数据集呢是你创建的要放入SAS中的数据集,也就是你要把读入的数据放到哪个数据集中。
问题:要输出到过程步的数据集和你最终要输出的数据集之间有什么关系?
也就是你要输出到过程步的数据集
DATA output-SAS-data-set
可以看出data是创建的一个要输出的数据集。
data后面加上的是你数据集的名称。比如说上面这段代码就是说那你创建了一个名叫work.subset1的数据集。
where放在data数据步中呢,主要作用是
set这个语句呢就是把你外部的数据读入到你创建的data数据集中,set orion.sales是说你把orion.sales这个外部的数据读入到你创建的data数据中的命令,并在data步中进一步处理
SET input-SAS-data-set;
由上述可以set是读入数据集的操作。默认的情况下是读入所有的观测和变量,set语句能读入临时或永久数据集。
当然我们也可以选择要读入的数据种类,所以可以在data步中加入语句,来减少观测和变量的个数。
(where、keep 、drop、label、format、)
libname orion 's:\workshop';
data work.subset1;
set orion.
这个是指从一个命名为 orion.sales的永久SAS数据集中创建一个命名为Work.subset1的临时SAS数据集。
接着介绍在data步中可以添加的语句
一般表达形式:
WHERE where-表达式 ;
比较运算符
算数运算符
逻辑运算符
特殊where运算符:
contains是包含子串
like是比较
区分这两个
选择变量的语句:drop和keep语句
drop语句是指定输出数据集中药删除的变量名称(这里是指在输出集中删除而已,原始数据中是没有改变的)
DROP variable-
keep语句是制定要写入的数据集的变量名称
KEEP variable-list;
keep First_Name Last_Name
Salary Job_Title
问题:读取带分隔符的原始数据文件用的语句是input,之前的语句是set,所以说有格式的文件读入的时候就不能用set了吧,只有非常标准的文件才能用set 读入
添加永久属性:label和format
SAS数据集的描述部分存储包含名称、类型(字符或数值)和变量长度的变量属性。(这三个属性是固有的必须有的意思)
label语句将描述标签赋给变量名
label Job_Title='Sales Title'
Hire_Date='Date Hired';
这里是指在输入数据集中的Job_Title添加标签为’Sales Title’
Hire_Date添加标签为’Date Hired’
在一个data步中使用label语句,通过标签存储在这个sas数据集的描述部分,使标签和变量永久关联
PS:如果想要标签展示在输出的数据集中,则需要在proc print +数据集 后面加上label这个语句。
format语句将格式赋给变量值
FORMAT variable(s) format;
格式是SAS用于写出数据的一个指令。
在data步中使用format语句,通过将格式存储在SAS数据集的描述部分中,使格式和变量永久关联。
特别要注意的是数值型格式和日期型格式。
format Salary commax8. Hire_Date ddmmyy10.
这里指出salary变量的格式为commax8.以及Hire_Date变量的格式是ddmmyy10.
除了Zw.d 用0代替空格来填补右对齐的输出, Zw.d 格式
与w.d 格式相似。
标签和格式也能存储在描述符部分
set语句是从一个SAS数据集中读入观测,并在DATA步中进一步处理
input语句描述了原始数据文件中的数值排列,同时将输入值赋值给相应的sas文件,
SAS中的输出是一条一条输出呢还是一次性输出呢?
读取Excel数据
SAS/ACCESS LIBNAME语句 扩展了LIBNAME语句,将一
个逻辑库名(libref)分配给 Microsoft Excel工作表
libname orionxls 's:\workshop\sales.xls';
这个语句使你能在一个DATA步或SAS程序中直接引用工作
表,读取和写入到一个Microsoft Excel工作表,就像它是
一个SAS数据集。
excel工作簿中的每个工作表被当做一个SAS数据集
libname orionxls 's:\workshop\sales.xls';
data work.subset2;
set orionxls.'Australia$'n;
where Job_Title contains 'Rep';
keep First_Name Last_Name Salary
Job_Title Hire_D
label Job_Title='Sales Title'
Hire_Date='Date Hired';
format Salary comma10. Hire_Date weekdate.;
如果SAS将逻辑库名分配给一个Excel工作表,这个工作表将不能在excel中打开,要取消逻辑库,用libname语句并指定库名和clear选项。
libname orionxls clear;
从SAS数据集中创建Excel工作表:data或者copy
libname orionxls
's:\workshop\qtr2007a.xls';
data orionxls.qtr1_2007;
set orion.qtr1_2007;
用copy创建excel表
libname orionxls
's:\workshop\qtr2007b.xls';
proc copy in=orion out=
select qtr1_2007 qtr2_2007;
proc contents data=orionxls._all_;
libname orionxls clear;
注意在input读入的格式部分的处理以及format部分的格式处理。(这两者有区别吗??)
PS:注意where语句不能用于从一个原始数据文件中选择记录,只能用于从输入数据集中选择部分观测。
用import向导和程序读入一个excel表,export向导和程序创建一个excel表
读取带分隔符的原始数据(是不是就是csv数据呀)
这一节主要讲如何读取带分隔符的原始数据,那个带分隔符的原始数据又分为两种,一种是读取带分隔符的标准数据;一种是读取带分隔符的非标准数据,下面我们来看看这两种之前又什么区别和联系
区分标准数据和非标准数据
读取带分隔符的标准数据
DATA output-SAS-data-set;
LENGTH variable(s) $
INFILE 'raw-data-file-name';
KEEP variable-list;
LABEL variable = 'label'
variable = 'label'
variable = 'label';
FORMAT variable(s)
infile语句用来定义原始数据文件的物理名称,以便于用input语句读入。(物理名称是指操作系统环境用于访问这个文件的名称,那我还是不懂啊,这个名称是具体到某个盘的某个文件夹下的名称吗)
infile 's:\workshop\sales.csv';
input语句描述了原始数据文件中的数值排列,同时将输入值付给相应的sas变量
DATA output-SAS-data-set;
INFILE 'raw-data-file-name';
&additional SAS statements&
这里要写一个input语句和set语句的区别,还有一个问题,上文读入的excel语句是外部语句把
一个空格(空白)是默认的分隔符,如果想指定其他的分隔符,则用DLM=选项 来进行指定
DATA output-SAS-data-set;
INFILE 'raw-data-file-name' DLM='delimiter';
&additional SAS statements&
标准数据的列表输入
INPUT variable &$&;
变量一定要按照它们在原始数据文件中出现的顺序从左到有依次排列。
data work.subset3;
infile 'sales.csv' dlm=',';
input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $;
非标准数据的列表输入
列表输入的格式如下:
INPUT variable &$& variable & :informat &;
:修饰符使你可以用一个输入格式读入带分隔符的非标准数据
input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $
Birth_Date :date.
Hire_Date :mmddyy.;
额外的SAS语句
这个额外的sas语句包括where /keep/drop/format
其实就和读入sas数据集的处理部分相似了
data work.subset3;
length First_Name $ 12 Last_Name $ 18
Gender $ 1 Job_Title $ 25
Country $ 2;
infile 'sales.csv' dlm=',';
input Employee_ID First_Name $ Last_Name $
Gender $ Salary Job_Title $ Country $
Birth_Date :date.
Hire_Date :mmddyy.;
keep First_Name Last_Name Salary
Job_Title Hire_Date;
label Job_Title='Sales Title'
Hire_Date='Date Hired';
format Salary dollar12. Hire_Date monyy7.;
用连个连续的分隔符知名缺失值
length Name 20PhoneMobile 14;
infile ‘phone2.csv’ dlm=’,’;
input Name Phone Mobile $;
proc print data=
####DSD选项
infile语句中的dsd选项:
设置默认分隔符为逗号
将连续分隔符视为缺失值
可读入在引号内包含分隔符的数据值
length Name 20PhoneMobile 14;
infile ‘phone2.csv’
input Name Phone Mobile $;
proc print data=
DLM=‘,’ 选项在INFILE语句中不再需要,因为DSD选
项设置默认分隔符为一个逗号。
@和@@的区别
DATA 语句 表示一个数据步的开始,并给出正被创建的
SAS数据集的名字。
SET 语句 从一个SAS数据集中读入观测,并在DATA步中
进一步处理。
选择观测和变量
默认情况下, SET语句从输入数据集中读取所有的观测和
通过添加语句到DATA步,可以减少观测和变量的个数。
一个变量运算数必须是来自输入数据集的一个变量。
SAS基础 -- SAS编程入门
SAS入门操作
SAS中drop与keep
SAS处理数据的三个重要步骤
没有更多推荐了,

我要回帖

更多关于 数据库常用sql语句 的文章

 

随机推荐