SAS中@@表示的意思
- 格式:doc
- 大小:36.50 KB
- 文档页数:2
Ⅰ.用在DATA步的文假作语句1.DATA语句表示一个数据步的开始, 并给出正被创建的SAS数据集的名字。
(1)格式: DATA [SASdataset[(dsoptions)]]…;(2)说明: SASdataset是这个DATA步正被创建的一个或几个SAS数据集的名字;dsoptions告诉SAS系统关于正被创建的SAS数据集的更多的信息。
(3)SAS数据集的名字的种类①省略数据集名DATA; 等价于写: DATA _DATA_;每运行一次,SAS系统自动给创建的数据集依次命名为DATA1, DATA2, …。
②单水平名字DATA ABC; SAS系统自动命名为WORK.ABC,这里WORK是隐含的第一水平名字,即库名, 彻底退出SAS系统时,此数据集就消失了, 故称为临时数据集。
ABC是第二水平名字,它可以由不超过8个字符组成。
③双水平名字DATA WWW.ABC; 这里WWW是库标记, 它靠LIBNAME语句建立起与某个目录之间的联系,如: LIBNAME WWW 'C:\HULP'; DATA WWW.ABC;枕明想在C盘的目录名为HULP下建立一个名为ABC.SSD的永久数据集,“.SSD”是SAS系统自动加的, 此文件只供SAS系统调用,用户无法直接阅读。
调用方式为:LIBNAME WWW 'C:\HULP';PROC 过程名DATA=WWW.ABC;再写其他SAS语句。
④特殊的数据集名DATA _NULL_; 和 DATA _LAST_;前一个语句表明只想用PUT语句来输出一些结果, 但不想创建SAS数据集,可减少使用计算机的资源; 后一个语句表明SAS系统使用一个称为_LAST_的特殊自动变量来保留在一个SAS 程序里最新创建的SAS数据集。
注意: 在进入SAS DMS后要建立的第一个数据集名不能用_LAST_。
⑤同时使用多个数据集名如果你想对一组含有年龄和另外10个变量的资料按青年、中年、老年创建三个数据集, 可用如下的方法实现: DATA ONE TWO THREE; INPUT AGE X1-X10; IF AGE<=35 THEN OUTPUT ONE;ELSE IF AGE>35 AND AGE<=55 THEN OUTPUT TWO;ELSE IF AGE>55 THEN OUTPUT THREE; CARDS;(4)dsoptions(即SAS数据集的选择项)注意∶下面的②、⑥两个选择项仅当读已存在的SAS数据集时有效。
一SAS语句SAS语言程序由数据步和过程步组成。
数据步用来生成数据集、计算、整理数据,过程步用来对数据进行分析、报告。
SAS语言的基本单位是语句,每个SAS语句一般由一个关键字(如DATA,PROC,INPUT,CARDS,BY)开头,包含SAS名字、特殊字符、运算符等,以分号结束。
SAS关键字是用于SAS语句开头的特殊单词,SAS语句除了赋值、累加、注释、空语句以外都以关键字开头。
SAS名字在SAS程序中标识各种SAS成分,如变量、数据集、数据库,等等。
SAS 名字由1到8个字母、数字、下划线组成,第一个字符必须是字母或下划线。
SAS关键字和SAS 名字都不分大小写。
二SAS表达式SAS数据步程序中的计算用表达式完成。
表达式把常量、变量、函数调用用运算符、括号连接起来得到一个计算结果。
常量SAS常量主要有数值型、字符型两种,并且还提供了用于表达日期、时间的数据类型。
数值型:数值型常数可以用整数、定点实数、科学计数法实数表示。
如:12,-7.5,2.5E-10字符型:字符型常数为两边用单撇号或两边用双撇号包围的若干字符。
如:'Beijing',"Li Ming","李明"日期、时间:日期型常数是在表示日期的字符串后加一个字母d大小写均可),中间没有空格。
时间型常数是在表示时间的字符串后加一个字母t。
日期时间型常数在表示日期时间的字符串后加字母dt。
日期型:'13JUL1998'd时间型:'14:20't日期时间型:'13JUL1998:14:20:32'dt因为SAS是一种数据处理语言,而实际数据中经常会遇到缺失值,比如没有观测到数值,被访问人不肯答,等等。
SAS中用一个单独的小数点来表示缺失值常量。
变量SAS变量的基本类型有两种:数值型和字符型。
日期、时间等变量存为数值型(实际记录为距1960/01/01的天数)。
SAS语言概述SAS提供了一种完善的编程语言。
类似于计算机的高级语言,SAS用户只需要熟悉其命令、语句及简单的语法规则就可以做数据管理和分析处理工作。
因此,掌握SAS编程技术是学习SAS的关键环节。
在SAS中,把大部分常用的复杂数据计算的算法作为标准过程调用,用户仅需要指出过程名及其必要的参数。
这一特点使得SAS编程十分简单。
一、SAS程序SAS程序是SAS语句的有序集合。
SAS程序可分为两部分:1.数据步(DATAStep)2.过程步(PROCStep)在一份SAS程序中,通常有一个数据步和一个过程步.有时可能有多个数据步和多个过程步。
数据步是为过程步准备数据的且将准备好的数据放在数据集中,过程步是把指定数据集中的数据计算处理并输出结果。
二、SAS语句SAS语句是以SAS关键词开头、后跟SAS名、特殊字符或操作符组成,并且以分号结尾。
一个SAS语句规定了一种操作或为系统提供某些信息。
1.SAS关键字关键字是系统已赋于确定意义的一个单词。
在SAS语言里,除了赋值、求和、注释等语句外,多数语句是以其关键字作为开头的。
如DATA、FORMA,PROC、INFILE等都是相应语句的关键字。
2.SAS名在SAS语句中,可能出现的SAS名有变量名,数据集名,输出格式名,过程名,选择项名,数组名和语句标号名。
还有SAS对文件的一种特殊称呼叫逻辑库名和文件逻辑名。
SAS名是字母或下划线开头后跟宇母或数宇或下划线的字符串,字符个数不多于八个。
空格和特殊宇符(如$,@,#等)不许在SAS名中出现。
另外,SAS保留了一些特殊的变量名并赋于特定的意义,这些变量都是以下划线开头和结尾,如N_表示数据步已执行过的次数。
三、语句描述记号(1)关键字用英文书写,在写程序时,这些词必须严格以给出的拼写形式书写。
(2)[ ]内的项是可选项。
(3)…表示有多个项目四、SAS数据集“SAS数据集(DataSet)”是SAS中一种特定的数据文件。
SAS-Base认证考试—70题(21-30)本题知识点:IF子集、OUPUT语句子集IF语句对满足条件的观测输出到正在被创建的数据集中。
Q 22Which step displays a listing of all the data sets in the WORK library?A. proc contents lib=WORK run;B. proc contents lib=WORK.all;run;C. proc contents data=WORK._all_; run;D. proc contents data=WORK _ALL_; run;答案:C本题知识点:PROC CONTENTS过程默认自动打印最近创建的数据集的描述信息PROC CONTENTS;RUN;打印当前目录下的全部数据集的描述信息PROC CONTENTS DATA=_ALL_;RUN;打印WORK临时逻辑库下数据集的描述信息PROC CONTENTSDATA=WORK._ALL_;RUN;Q 23Which is a valid LIBNAME statement?A. libname "_SAS_data_library_location_";B. sasdata libname"_SAS_data_library_location_";C. libname sasdata"_SAS_data_library_location_";D. libname sasdata sas"_SAS_data_library_location_";答案:C本题知识点:LIBNAME定义逻辑库参考第12题。
Q 24Given the following raw data records:----|----10---|----20---|----30Susan*12/29/1970*10Michael**6The following output is desired:Obs employee bdate years1 Susan 4015 102 Michael . 6Which SAS program correctly reads in the raw data?A. data employees;infile 'file specification' dlm='*';input employee $ bdate : mmddyy10. years;run;B. data employees;infile 'file specification' dsd='*';input employee $ bdate mmddyy10. years;run;C. data employees;infile 'file specification' dlm dsd;input employee $ bdate mmddyy10. years;run;D. data employees;infile 'file specification' dlm='*' dsd;input employee $ bdate : mmddyy10. years;run;答案:D本题知识点:INFILE语句参考第2题。
data是什么意思?篇一:单片机C语言code与data的作用单片机C语言code与data的作用单片机C语言unsigned char code table code 是什么作用?code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是),因为C语言中没办法详细描述存入的是ROM还是RAM (寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM的意思。
程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数据进行运算处理,因此code区存储在什么介质上并不重要,象以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash 里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。
附:c51中的存储类型code :程序存储区(64KB),data :可直接寻址的内部数据存储区(128B)idata:不可直接寻址的内部数据存储区(256B)bdata:可位寻址内部数据存储区(16B)xdata:外部数据存储区(64KB)pdata:分页的外部数据存储区本文来自CSDN博客,转载请标明出处:archive/2009/09/20/ data ---> 可寻址片内rambdata ---> 可位寻址的片内ramidata ---> 可寻址片内ram,允许访问全部内部rampdata ---> 分页寻址片外ram (MOVX @R0) (256 BYTE/页) xdata ---> 可寻址片外ram (64k 地址范围)code ---> 程序存储区 (64k 地址范围),对应MOVC @DPTR const 表示本数组不可修改数组为常量数组code 表示本数组生成后是在ROM区中同样不可修改idata 表示数组生成后在在0x00~0xff的256个RAM中,使用指针寻址具体的参考下面data,bdata,idata,pdata,xdata,code存储类型与存储区bit是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。
附录1 与SAS语言有关的内容简介第48章 SAS语句简介SAS虽然也提供了SAS窗口环境和菜单驱动(Menu Driven)等多种人机对话的方式,但通过编写程序与SAS系统交互的方式,即命令驱动(Command Driven)能以更灵活的算法实现用户目的,可以说程序驱动是SAS的核心操作方式。
SAS程序语言(SAS Program Language)是功能强大、简洁灵活的第四代程序设计语言,综合了一些其他高级程序语言的功能和格式,有其独特的语法规则。
本章以SAS的基础Base SAS 9.1.3版本为主要内容,介绍常用SAS语句用法,不太常用的SAS语句仅列出名称,将省略其解释和用法,需要时请查阅SAS说明书或SAS帮助信息。
48.1 SAS程序(SAS Program)SAS程序是用户运用SAS程序语言编写的一段程序,这段程序将“用户提供的信息和所提出的愿望”与“SAS系统能完成的任务”紧密地联系在一起,提交SAS运行后,指导着SAS系统运行,故也称为SAS引导程序。
SAS程序通常可分为数据步和过程步,一段SAS程序根据目的和需要可以有0到多个数据步和0到多个过程步,还可以有系统选项语句、ODS语句等全局语句。
48.1.1 数据步(Data Step)以关键词Data开头,可由多条语句构成,结束标志可以是空语句、Run语句、过程步或下一步数据步。
数据步功能有:z从原始文件数据(包括外部文件数据和数据行数据)创建SAS数据集(包括SAS数据文件和SAS数据视图);z从其他已存在的SAS数据集以子集、合并、修改、更新等操作创建SAS数据集(包括SAS数据文件和SAS数据视图);z数据分析、数据操作和数据呈现;z计算变量的值;z编写报表,或将文件输出到储存设备;z文件管理和资料重现。
48.1.2 过程步(Proc Step)以关键词Proc开头,可由多条语句构成,结束标志是Run或Quit语句。
过程步的功能有:z调用SAS过程(SAS Procedures)分析和处理SAS数据集形式的数据,或执行其他分析;z将分析结果以报表、图表的形式输出,或输出成SAS数据集、外部文件;z生成SQL查询;z显示SAS文件;z数据操作和管理。
两个都是行控制符(就是SAS阅读你的数据时,在每一行里面的阅读数)
@ 表示执行下一个操作时,指针移到下一个记录(也就是下一行)。
@@表示执行下一个操作,指针保持在当前记录(当前行)。
举个例子:(数据录入我使用两种方式,以便于看出@与@@的阅读区别)
一:录入数据时占用一行的空间
data a;
input x y @;(当仅仅使用一个@时)
cards;
1 2 3 4 2 2 3 5 3 2 1 1 (数据占用一行空间)
;run;
proc print data=a;
run;
(阅读结果如下)
data a: (此时SAS仅仅读了1次,显然没有读完,就跳到下一行阅读下一个数据,因为下一行没有数据可读,所以就读了一次就完了)
The SAS System 17:52 Saturday, October 27, 2014 23
Obs x y
1 1 2
data b;
input x y @@;
cards;
1 2 3 4 2 2 3 5 3 2 1 1 (数据占用一行空间)
;run;
proc print data=b;
run;
(阅读结果如下)
data b(此时SAS读了6次,显然这次是正确的,因为使用@@时,数据在当前行连续阅读)
The SAS System 17:52 Saturday, October 27, 2014 24
Obs x y
1 1 2
2 3 4
3 2 2
4 3 5
5 3 2
6 1 1
二:录入数据时占用多行空间
data a;(当仅仅使用一个@时)
input x y @;
cards; 1 2 3 4
2 2
3 5 (数据占用三行空间)
3 2 1 1
;run;
proc print data=a;run;
(SAS阅读情况如下)
data a:(此时SAS仅仅读了3次,显然没有读完,因为每一行没有连续读完,就开始阅读新下一个数据,也就是光标就跳到了下一行)
The SAS System 17:52 Saturday, October 27, 2014 25
Obs x y
1 1 2
2 2 2
3 3 2
data b;
input x y @@;
cards;
1 2 3 4
2 2
3 5
3 2 1 1
;run;
proc print data=b;
run;
(SAS阅读情况如下)
data b;(此时SAS阅读了6次,显然这次阅读的阅读时正确的,因为每一行都是连续读取之后再读取下一记录,也就是跳到下一行)
The SAS System 17:52 Saturday, October 27, 2014 26
Obs x y
1 1 2
2 3 4
3 2 2
4 3 5
5 3 2
6 1 1。