我有一个数据集考试。
值是: (两个变量都是字符)
exam1
24个
56个
78个
ND
exam2 35 56 ND 45
这是我必须执行的任务: 使用select语句,将检查值转换为数字,这样当检验值为ND时,检验值必须指定为0,否则它应该只使用输入函数从字符转换为数字。
我尝试过这段代码:
data work.ex(drop = Ex1 Ex2);
set home.exam(rename=(exam1=Ex1) (exam2=Ex2))
select ;
when (exam1='ND') exam1=0;
otherwise exam1=input(Ex1,3.0);
end;
但这不是将其转换为数字
答案 0 :(得分:0)
proc sql;
select
case when exam1 = 'ND' then 0
else input(exam1,2.) end as exam1,
case when exam2 = 'ND' then 0
else input(exam2,2.) end as exam2
from exam;
quit;
如果您的数字大于2位,请增加值2.
。
答案 1 :(得分:0)
Select语句的工作原理如下:
Data want;
Set have;
Select(var);
When(1) ...;
When(2) ...;
When(3) ...;
Otherwise ...;
End;
Run;
1 2 3是您选择的逻辑陈述(例如,var=7
)。 ......如果像var2=1;
那样真实,你想做什么。