全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1384 3
2012-01-22
我又段代码 :
proc sql;
select
CASE STATE
WHEN 'Alabama' then 'warm'
Else 'not warm'
end as jack
From library.accident;
quit;

提交
ERROR: Operand of WHEN clause 1 is not the same data type as the CASE operand.



STATE   LENGTH 是 3   TYPE 是 NUMERIC
我觉得NUMERIC 会有问题 但是不知道怎么改动。。。  

请各位指点
谢谢  
二维码

扫码加我 拉你入群

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

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

全部回复
2012-1-28 02:33:45
你应该在数据集里面加这样一个statement

data library.accident;
   set library.accident;
   state_new = put(state, $20); /*长度看你需求,取决于州名长度*/
run;

然后你在用proc sql , case when 里面选state_new.

不过, 理论上,你根本不可能在原来的数据集里找到Alabama,因为它是numeric, 最好再检查检查
二维码

扫码加我 拉你入群

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

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

2012-2-1 03:25:09
楼主看见的是可能是permanent format 后的值,原来数据可能存的时1,2,3,然后又各format是1=alabama之类的。
二维码

扫码加我 拉你入群

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

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

2012-2-1 09:52:47
同意一楼的观点!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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