跟crakman做sas base认证试题(2)-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

跟crakman做sas base认证试题(2)

跟crakman做sas base认证试题(2)

发布:crackman | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

经管之家新媒体交易平台

提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

提供微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯等虚拟账号交易,真正实现买卖双方的共赢。【请点击这里访问】

2.GiventhefollowingrawdatarecordsinTEXTFILE.TXT:----|----10---|----20---|----30John,FEB,13,25,14,27,FinalJohn,MAR,26,17,29,11,23,CurrentTina,FEB,15,18,12,13,FinalTina,MAR,29,14,19,27,20,CurrentThefoll ...
免费学术公开课,扫码加入


2.Given the following raw data records in TEXTFILE.TXT:
----|----10---|----20---|----30
John,FEB,13,25,14,27,Final
John,MAR,26,17,29,11,23,Current
Tina,FEB,15,18,12,13,Final
Tina,MAR,29,14,19,27,20,Current
The following output is desired:
Obs Name Month Status Week1 Week2 Week3 Week4 Week5
1 John FEB Final $13 $25 $14 $27 .
2 John MAR Current $26 $17 $29 $11 $23
3 Tina FEB Final $15 $18 $12 $13 .
4 Tina MAR Current $29 $14 $19 $27 $20
Which SAS program correctly produces the desired output?
A.
data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dsd;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;
format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
B.
data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dlm=',' missover;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;
format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
C.
data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dlm=',';
input Name $ Month $ @;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;
format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
D.
data WORK.NUMBERS;
length Name $ 4 Month $ 3 Status $ 7;
infile 'TEXTFILE.TXT' dsd @;
input Name $ Month $;
if Month='FEB' then input Week1 Week2 Week3 Week4 Status $;
else if Month='MAR' then input Week1 Week2 Week3 Week4 Week5 Status $;
format Week1-Week5 dollar6.;
run;
proc print data=WORK.NUMBERS;
run;
Answer: C
本文属于博客:http://crackman.net/ 版权归作者所有,欢迎转载!如有转载,请务必注明出处!未经本文作者同意不得用于商业应用。
这道题其实考察的是读入外部文本数据时几个知识点,1.INFILE语句读入外部数据时候,参数MISSOVER以及DSD DLM的参数意义;2.INPUT读入数据的指针;3.@符号对指针的影响。
下面逐个对着程序,来解剖一下执行过程。
A.DSD:规定若一个数据是由引号,那么SAS认为引号内的逗号也是属于字符数据;设定默认分隔符为逗号;连续两个分隔符之间的数据位缺失值;读入数据时去掉引号。
input语句在读入观测时,先从第一行“John,FEB,13,25,14,27,Final”读取数据“John,FEB”就转入到了第二行“John,MAR,26,17,29,11,23,Current”,那么因为month="FEB"是true
所以接着在第二行“John,MAR,26,17,29,11,23,Current”,读入week1 week2,但是john mar都是字符型,而week1 week2默认为数值型,所以就是缺失值。继续读入week3 week4也就是26 17
接着就是status 是29。读完之后回到infile,回到input,从第三行开始读"Tina,FEB,15,18,12,13,Final",读入name month之后,转达到第四行“Tina,MAR,29,14,19,27,20,Current”。
B.MISSOVER:组织INPUT从下一个数据行中读入数据,未赋值的变量就是缺失值。
其实从A看出,因为第一次INPUT只读入第一数据行两个值,指针转入到第二行了。那么MISSOVER是否可以阻止呢?肯定不能阻止,因为INPUT第一次就只读入两个数据,而且第一行的数据也是
大于2个的,所以根本就无需阻止。自己读完两个数据之后自动转向第二行。不能让第一次和第二次的input指针保留在同一行中。
C.正确答案。原因很简单,因为@符号,让第一个INPUT读完数据之后,指针依然留在第一个数据行,等待第二个INPUT来读入后续的数据。
D.不用解释。INFILE后面加一个@本身就是错误,编译错误
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-958254-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
经管之家 人大经济论坛 大学 专业 手机版