楼主: dqianli
3760 6

[原创博文] 求教 SAS base 123题中的第59题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

95%

还不是VIP/贵宾

-

威望
0
论坛币
73 个
通用积分
0.1200
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
9315 点
帖子
132
精华
0
在线时间
226 小时
注册时间
2008-12-14
最后登录
2018-1-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
The following SAS program is submitted:
data work.staff;
JobCategory= 'FA';
JobLevel= '1';
jobCategory= JobCategory || JobLevel;
run;
Which one of the following is the value of the variable JOBCATEGORY in the
output data set?

A. FA
B. FA1
C. FA 1
D. ' ' (missing character value)

为什么答案是选 A?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SAS base Base following Character Category character following

回帖推荐

情迷仲夏夜 发表于4楼  查看完整内容

原因有二: 第一,JobCategory和jobCategory同名;而第二点更主要。 第二,sas在读取JobCategory= 'FA';时,已经自动把JobCategory设置为两个字符串,所以,当执行jobCategory= JobCategory || JobLevel; 时,JobCategory内的数据被系统truncate截取成两个字符串,而不会再读进后面的1。 如果你将程序改成: data work.staff; JobCategory= 'FA'; JobLevel= '1'; jobCategory1= JobCategory || JobLevel; proc print;r ...

本帖被以下文库推荐

沙发
weihancool 发表于 2011-1-24 09:34:40 |只看作者 |坛友微信交流群
不能在原变量上链接吧?生成一个新变量可以
国士无双

使用道具

藤椅
dqianli 发表于 2011-1-24 09:45:04 |只看作者 |坛友微信交流群
大小写不影响么?就是说这样改不了JOBCATEGORY的值,对么?

使用道具

板凳
情迷仲夏夜 发表于 2011-1-24 10:21:48 |只看作者 |坛友微信交流群
原因有二:
第一,JobCategory和jobCategory同名;而第二点更主要。
第二,sas在读取JobCategory= 'FA';时,已经自动把JobCategory设置为两个字符串,所以,当执行jobCategory= JobCategory || JobLevel; 时,JobCategory内的数据被系统truncate截取成两个字符串,而不会再读进后面的1。
如果你将程序改成:
data work.staff;
JobCategory= 'FA';
JobLevel= '1';
jobCategory1= JobCategory || JobLevel;
proc print;run;
结果就截然不同了:
                       Job          Job           job
                             Obs    Category    Level    Category1

                              1        FA         1         FA1
已有 1 人评分热心指数 收起 理由
dqianli + 1 谢谢解答

总评分: 热心指数 + 1   查看全部评分

使用道具

报纸
elek.me 发表于 2011-1-24 11:30:49 |只看作者 |坛友微信交流群
去了解一下sas的编译过程,就知道了。
变量的属性,包括长度,在编译过程中就会确定,因为没有对JobCategory的长度进行人为设定,所以在编译时sas会根据其最先出现的值的长度来确定,确定之后,在执行过程中会严格按照这个长度来读取。
我的博客: http://elek.me/sas
联系我: http://about.me/elek

使用道具

地板
elek.me 发表于 2011-1-24 11:35:49 |只看作者 |坛友微信交流群
另外还有 || 连接符。
即便对jobcategory的长度进行设定,按照例子里的程序,结果也只能是jobcategory的原始值。
因为||在连接的时候,是直接连接,如果长度不够,会自动补充空格,意思就是仍然保留字符型变量后面的空格,具体可参照:http://elek.me/ways-to-concatena ... ings-using-sas.html
已有 1 人评分热心指数 收起 理由
dqianli + 1 谢谢解答!

总评分: 热心指数 + 1   查看全部评分

我的博客: http://elek.me/sas
联系我: http://about.me/elek

使用道具

7
honghejing 发表于 2011-1-26 09:47:41 |只看作者 |坛友微信交流群
因为你没有给jobcategory设定长度,SAS在运行的时候,第一次赋值为'FA',所以系统会自动认为jobcategory
的长度为2.
已有 1 人评分热心指数 收起 理由
dqianli + 1 谢谢解答!

总评分: 热心指数 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 21:32