在SAS中将字符值转换为数字

时间:2014-03-24 06:45:52

标签: character-encoding sas

我有一个数据集考试。

值是: (两个变量都是字符)

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;

但这不是将其转换为数字

2 个答案:

答案 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;那样真实,你想做什么。