全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2661 5
2016-04-18
crackman base 10的解释里的程序,cost为什么是字符串也可以进行计算呢?


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


二维码

扫码加我 拉你入群

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

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

全部回复
2016-4-18 09:16:43
字符型变量可以自动转化为数值型参与计算,如果转换失败,则会提示“ 无效的数值数据”。
相反,数值型变量也可以自动转化为字符型变量。
二维码

扫码加我 拉你入群

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

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

2016-4-18 10:16:34
孤单的我们 发表于 2016-4-18 09:16
字符型变量可以自动转化为数值型参与计算,如果转换失败,则会提示“ 无效的数值数据”。
相反,数值型变量 ...
那什么样的情况下会转换失败呢~~~
二维码

扫码加我 拉你入群

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

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

2016-4-18 10:30:29
littlehui1 发表于 2016-4-18 10:16
那什么样的情况下会转换失败呢~~~
"100"可以转成100,  ">100"就转换失败了。
二维码

扫码加我 拉你入群

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

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

2016-4-18 16:14:39
孤单的我们 发表于 2016-4-18 10:30
"100"可以转成100,  ">100"就转换失败了。
再请教一下~~

crackman base 18中,
The SAS data set WORK.ONE contains a numeric variable named Num and a character variable named Char:

  WORK.ONE
  Num   Char
  —   —-
    1   23
    3   23
    1   77

The following SAS program is submitted:

  proc print data=WORK.ONE;
     where Num=\’1\';
  run;

这种情况下报错“ERROR: WHERE 子句运算符要求兼容的变量。”


但是如果
data test2;
set test;
if num="1";
proc print data=test2;
run;
就可以顺利运行,log显示“字符值已转换为数值”

这是为神马啊{:3_41:}
二维码

扫码加我 拉你入群

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

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

2016-4-18 16:17:50
littlehui1 发表于 2016-4-18 16:14
再请教一下~~

crackman base 18中,
if是执行语句,而where不是。
变量类型转换是在执行语句中起作用的。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群