楼主: SinkyQ
3748 7

[问答] crackman base 70题第10题求问 [推广有奖]

  • 0关注
  • 0粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0500
学术水平
1 点
热心指数
2 点
信用等级
2 点
经验
235 点
帖子
35
精华
0
在线时间
30 小时
注册时间
2017-4-19
最后登录
2023-10-29

楼主
SinkyQ 发表于 2017-5-11 22:37:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
SAS crackman 70题里面的这一道题:


10.The following SAS program is submitted:

data WORK.RETAIL;
   Cost=\’$20.000\’;
   Discount=.10*Cost;
run;

What is the result?

     A. The value of the variable Discount in the output data set is 2000.No messages are written to the SAS log.
     B. The value of the variable Discount in the output data set is 2000.A note that conversion has taken place is written to the SAS log.
     C. The value of the variable Discount in the output data set is missing.A note in the SAS log refers to invalid numeric data.
     D. The variable Discount in the output data set is set to zero.No messages are written to the SAS log.

Answer: C


crackman建议改写成这样试试:
data WORK.RETAIL;
   Cost=\’20.000\';
   Discount=.10*Cost;
   Put Discount;
run;



但是看完后我还是有几个不明白的地方:
1.cost=那里的\’ \’是字符符号的意思吗?
2.在discount=那里是不是把cost直接从character转变为numerical value了?但是为什么原题答案还是discount会missing呢?
3.如果按照crackman的建议加上put discount这一行答案就是B了吗?可否讲解一下加上这一行的区别是?


谢谢!


二维码

扫码加我 拉你入群

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

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

关键词:crackman Ackman CRACK Base Man

沙发
popodan 在职认证  发表于 2017-5-11 23:43:03
你看到版本是错误的,没有//符号。
另外你可以试下'20000'和'$20,000'两种情况分别是什么答案。
至于put 那句就不知道意图是什么了。。。

藤椅
foocares 发表于 2017-5-11 23:51:36
那是网站html编码显示格式不兼容,对照着其他版本原题看就明白了。
put是在log中打印结果。

板凳
SinkyQ 发表于 2017-5-12 04:58:10
foocares 发表于 2017-5-11 23:51
那是网站html编码显示格式不兼容,对照着其他版本原题看就明白了。
put是在log中打印结果。
谢谢!所以‘$20000'其实并不能转化成数值的20000对吧?因为前面的$符号

报纸
SinkyQ 发表于 2017-5-12 05:01:57
popodan 发表于 2017-5-11 23:43
你看到版本是错误的,没有//符号。
另外你可以试下'20000'和'$20,000'两种情况分别是什么答案。
至于put  ...
谢谢!想请问下‘20.000’和‘20,000'的表达是不是一样的呀?不知道句号会不会有什么影响

地板
foocares 发表于 2017-5-12 11:16:28
SinkyQ 发表于 2017-5-12 04:58
谢谢!所以‘$20000'其实并不能转化成数值的20000对吧?因为前面的$符号
那倒不是,这里无论是用单引号还是双引号,目的都只是表明cost此处被赋值成了字符型。
这题真正的考点是:字符型变量被用在下一行的数学表达式里SAS会挖一个坑:叫做自动类型转换

如果符合标准格式,那么SAS从字符到数值类型的自动转换将会成功,比如里头是'20000'是可以的;
但如果是'$20000', 乃至'20,000',因为含有非数值符号$或者逗号,那么转换失败,cost被赋值为缺省的missing,连带Discount也因此变为missing.

7
SinkyQ 发表于 2017-5-12 16:31:56
foocares 发表于 2017-5-12 11:16
那倒不是,这里无论是用单引号还是双引号,目的都只是表明cost此处被赋值成了字符型。
这题真正的考点是 ...
谢谢详细的回复!

不过‘20,000'或者'20.000’是不可以的吗?
http://crackman.net/?p=262 因为我看crackman网站的讲解,它最后在示例正确答案(虽然不知道他的意思是不是正确答案)的时候,只是去掉了$符号,但是20000还是写成了20.000的格式(不知道他这里的句号是不是跟逗号一样)

现在在国外,用的mac,没有win系统是个坑,都跑不了sas

8
foocares 发表于 2017-5-13 00:33:14
SinkyQ 发表于 2017-5-12 16:31
谢谢详细的回复!

不过‘20,000'或者'20.000’是不可以的吗?
只能说这个论坛系统编码土鳖了,把回复的美元符号吃掉了。
20.0000(点)可以,20,000(逗号)不行,原题里的美元符号加数字当然也不可以。

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 12:37