如何在SAS使用if语句的格式x.x中
我试图使用一系列if和else语句的变量值,为:如何在SAS使用if语句的格式x.x中
if var1 = 1 then var2 = "day 1";
else if var1 = 2 then var2 = "day 2";
以上位工作正常。
然后我的值为var1
1.1和1.2和2.1等。我想要的是,如果var1
的值是格式x.x(带有一位小数的值),那么var2 = "No day assigned"
。
我不确定如何在SAS中编程?
任何指针将不胜感激。
我会使用MOD函数来确定var1是否是一个整数。如果上面的逻辑适用于所有值(即日期编号与var1相同),那么您还可以将if语句简化为单行。
data test;
input var1;
length var2 $15;
var2=ifc(mod(var1,1)=0,cats('day ',var1),'No day assigned');
cards;
1
2
1.1
2.1
3
4
;
run;
我相信'DATALINES'通过'CARDS'传递。 [*退伍军人SAS用户可能熟悉此关键字的原始名称:CARDS。 CARDS是数据处理早期的一种倒退,通过物理打孔卡将例程和数据输入到计算机中。*](http://www2.sas.com/proceedings/sugi31/228-31.pdf) – JDB 2013-02-27 17:44:47
@keith,这很好地回答了我的问题,谢谢!在学好之前,我还没有使用mod或ifc函数!我使用了:如果mod(var1,1)ne 0,那么var2 =“No day assigned”,因为ifc不适用于数据集中的实际值,但将在未来使用! – Ellie 2013-02-27 19:27:01
我不认为CARDS和DATALINES有什么不妥 - 它们有相同的结果。他们确实显示你的年龄,当然... – Joe 2013-02-27 19:29:44
你的意思是如果值的格式为4.1,或者你的意思是如果该值不是一个整数?毕竟,6可以用格式4.1表示为6.0。 – Joe 2013-02-27 16:21:50
@joe,我的意思是,如果值不是一个整数,所以如果它是9.01而不是9。 – Ellie 2013-02-27 19:28:31