SAS编程技术课后习题总结Word文件下载.docx
- 文档编号:17909388
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:13
- 大小:61.02KB
SAS编程技术课后习题总结Word文件下载.docx
《SAS编程技术课后习题总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《SAS编程技术课后习题总结Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
在引擎中根据数据来源选择不同的引擎,如果只是想建立本机地址上的一个普通的SAS数据集数据库,可以选择默认。
然后选中“启动时启用”复选框,在逻辑库信息中,单击路径后的“浏览”按钮,选择窗口可以不填,单击确定产生一个新的逻辑库。
7.说明下面SAS命令的用途并举例:
keys,dlglib,libname,dir,var,options,submit,recall.
Keys激活功能键的设定窗口。
libname建立SAS逻辑库。
Submit提交。
Options设定一个或多个系统选项,任何系统选项都有一个默认设置。
8.用菜单方式导入(Import)和导出SAS数据集(Export)。
文件->
导入数据
出现上图对话框,选择要导入数据类型,然后NEXT。
浏览要导入数据的地址。
点击OK。
出现上图对话框,然后点击NEXT。
选择数据库存放的地址并命名。
第二次作业
1.构成SAS程序的语句分别分为哪两大类?
什么是SAS语句?
举例说明SAS语句的信息构成。
数据步、过程步
SAS语句就是一系列关键词、SAS名称、算符以及特殊字符的组合。
2.简述SAS名的种类及命名规则。
什么是SAS关键词?
SAS名的类型:
1逻辑库名;
2数据集名;
3变量名;
4格式名;
5过程名;
6数组名;
7语句标号名;
8特殊文件名;
9其它名。
SAS名称必须以字母或下划线开头;
SAS名称可以包括字母、数字和下划线;
SAS名称依据其使用的场合有一定长度限制。
3.SAS变量的类型和属性。
举例说明SAS自动变量。
数值变量
数值变量是SAS系统以浮点(floating-point)方式存储的数据变量,数
值变量包括日期和时间。
数值变量的值只能是数值。
字符变量
字符变量可以由阿拉伯字母、数字0-9以及其它一些特殊字符组成。
字符变量的值可以是字符、字母、特殊字符和数值。
字符变量名后跟
一个美元号($)表示该变量是字符型而不是数值型。
2)变量属性
SAS变量的属性包括:
长度、输入输出格式和标签。
未设定属性的变量在它们第一次出现时由系统给出。
4.给一个简单的SAS程序的例子,适当应用SAS的注释语句。
dataa;
/*data为关键词,a为SAS名*/
x=12345.1234;
informatx12.4;
/*输入语句,保留12字节和4位小数*/
formatx8.2;
/*输出语句,保留8字节和2位小数*/
putx=;
run;
5.SAS数据集中变量链表时,X1~Xn表示什么?
特殊SAS变量列表_numerie_,_character_和_all_的含义。
X1~Xn从X1到Xn的所有变量
_numerie_所有数值变量
_character_所有字符变量
_all_所有变量
6.怎样提交SAS程序?
简述程序执行过程中,LOG窗口显示的信息结构。
8.简述SAS表达式定义及其结构构成元素。
表达式由一系列操作符和操作对象构成,产生一个目标值。
使用表达式可以对变量作变换和赋值,创建新变量,计算新数值以及控制条件语句的运行等。
包括操作对象和操作符
9.构成SAS表达式的操作对象和操作符有哪些?
操作对象有:
变量;
常数
操作符包括:
算术算符;
比较算符;
逻辑算符;
SAS函数;
括号
11.举例说明数值常常数、字符常数和日期时间常数的表达方法。
引用数值格式
例:
标准格式:
1,01,+1,-1,1.1;
科学计数法:
1.1e11,1.2e-12;
十六进制格式:
1cx,12x,9x
字符常数通常由单引号括起来的1~32767个字符组成。
如果字符常数内含有引号,引用时,要么它的引号用两个连续的单引号,要么用一个双引号。
例:
name=”TOM’S”
引用日期时间常数,格式值带引号,后面跟一个D(日期)、T(时间)、或DT(日期时间)
’ljan2000’d
16.简述数据步的功能。
1)创建SAS数据集(SAS数据文件或SAS数据视图);
2)读取外部数据文件创建SAS数据集;
3)通过对现有SAS数据集取子集、合并、修改和更新创建新的SAS数据集;
4)分析、操作或展示数据;
5)创建新变量;
6)产生报告、或将文件存储到硬盘或磁带上;
7)提取信息;
8)文件管理。
第三次作业
dataA;
infilecards;
inputFee@@;
cards;
35789936792123908790
33556612981100
;
第四次作业
1、
inputx;
y=y*x;
retainy1;
1
2
3
4
8
16
procprint;
2、
datab;
inputstkcd$rdateyymmdd10.lstknm$var1var2var3;
datac;
formatstkcdlstknmrdatevar3var2var1;
setb;
3、
inputdateprice;
1223
2352
1121
1255
5521
689
procsortdata=a;
/*排序*/
bydate;
procsortdata=b;
setab;
procprintnoobs;
4、
inputlogdate$10.;
2011-12-2
2012-8-6
2012-8-10
seta(rename=(logdate=date));
date=input(date,yymmdd10.);
labeldate='
日期'
5、
自动变量是由数据步语句自动创建的,这些自动变量不输出到数据集中,在重复过程中被保留。
6、创建组标识变量GROUP,将数据集A中的观测等分为10组,观测值不能整除10时,前余数组各多加一个观测值
setresdat.treatnobs=nobs;
x=(nobs-mod(nobs,10))/10;
callsymput('
nobs'
nobs);
groupn'
x);
Callsymput('
mod'
mod(nobs,10));
Dropx;
%put&
nobs&
groupn;
doi=1to&
mod
do
_n_=1to&
groupn+1;
group=i;
output;
end;
end;
doi=&
mod+1to10;
do_n_=1to&
Dropi;
mergeab;
procsortdata=c;
bygroup;
7、现有一个数据流:
a2b3cd46,按下面要求创建SAS数据集。
用语句inputid$no;
变
量id取值上面数据流里的a,b,c,d,变量no取值2,3,4,6。
但是这个数据流存在问题:
如有的id没有no,有的no没有id。
创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的c和6去掉,最后得到三个观测,a2,b3与d4。
inputt$@@;
a2b3cd46
seta;
id=lag(t);
no=t;
if'
a'
<
=id<
='
z'
and'
0'
=no<
9'
dropt;
8、现有一个数据流:
a23223bc4363c511d400620,按下面要求创建SAS数据集。
用语句inputid$no;
变量id取值上面数据流里的a23,bc4,11d,变量no取值233,36,400。
创建SAS数据集,删除只有id没有no或者只有no没有id的观测,即把上面的3c5和620去掉,最后得到三个观测:
a23223
bc436
11d400
dataa(keep=idno);
inputx$@@;
id=lag(x);
no=input(x,8.);
y=lag(no);
ify='
.'
andid^='
'
andno^='
a23223bc4363c511d400620
第五次作业
1.创建一包含10000个变量(X1-X10000),100个观测值的SAS数据集。
分别用DATA步,DATA步数组语句和IML过程实现。
datatest1a;
informatx1-x100009.2;
doi=1to100;
output;
dropi;
2.多种方法创建包含变量X的10000个观测值的SAS数据集。
3.数据集A中日期变量DATE包含有缺失值,创建包含日期变量DATE的数据集B,并填充开始到结束日之间的所有日期值。
prociml;
x={'
date'
price};
t={11112,23412,21323,12345,123456,34566,67534,23457,21349};
printt;
t[1,1]=.;
t[2,1]=.;
t[5,1]=.;
t[9,1]=.;
createafromt[colname=x];
/
appendfromt;
showdatasets;
showcontents;
closea;
run;
quit;
formatdateyymmdd8.2;
dataa1;
seta
n=_n_;
retaintemp;
ifdate^=.thentemp=date;
elsedate=temp;
dataa2;
seta1;
procsortdata=a2;
bydescendingn;
seta2
dropntemp;
dataa4
seta3;
dataa4;
seta4;
procsortdata=a4out=b(drop=ntemp);
4.利用随机数函数RANUNI对某数据集设计返回抽样方案。
datasample(drop=samplesizen);
samplesize=5;
don=1tosamplesize;
readit=ceil(ranuni(0)*totobs);
putreadit=;
setbb.classpoint=readitnobs=totobs;
stop;
5.利用随机数函数RANUNI对某数据集设计不返回抽样方案。
setbb.class;
keepname;
setanobs=nobs;
ran=ceil(nobs*ranuni
(1));
putran=;
byran;
if_n_<
=15;
6.给下段程序的主要语句加注释。
STOP语句能否删除?
为什么?
不能删除。
强制结束数据步,因为set语句在数据步程序中会反复执行数据步的程序直到遇到文件结束(最后一跳观测)的标志,这里使用了指针选项可能碰不到这种标志,所以要用stop,否则就有可能无休止地执行下去。
7.SAS系统显示表达式、函数、数据集、数组或矩阵的具体值时,常需要哪些语句和过程?
put;
procprintprintshowlist;
第六次作业
2.SAS函数的自变量有几类?
自变量类型:
变量名、常数、函数、表达式。
3.举例说明自变量的表示方法和缩写规则。
当函数有多个自变量时,必须用逗号分隔开。
自变量名缩写方法:
函数名(OF变量名1-变量名n);
函数名(OF变量名1…变量名n)。
7.SAS系统是怎样存贮日期时间的?
SAS日期时间存贮标准是什么?
SAS日期和时间存储标准是以1960年1月1号0时0分0秒为起点,然后以相应的间隔记时。
如1960年1月1日9时0分,按日记的数值就是0,按小时记的数值就是9。
1960年1月2日0时0分,按日记的数值就是1,按小时记的数值就是24。
9.分别说明日期时间函数datdif,yrdif,date(),datetime,mdy,dhms有哪些实际用途。
DATADIF(sdate,edate,basis)返回两个日期之间的天数。
YRDIF(sdate,edate,basis)返回两个日期之间的年数。
DATA()返回当前日期的SAS日期值。
DATETIME()返回当前日期和时间。
MDY(month,day,year)返回由年、月和日定义的SAS日期值。
DHMS(date,hour,minute,second)返回由日期、小时、分钟和秒构成的SAS日期时间值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SAS 编程 技术 课后 习题 总结