Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sas IN函数不使用小数_Sas - Fatal编程技术网

Sas IN函数不使用小数

Sas IN函数不使用小数,sas,Sas,此代码给出错误“应为整数常量”。为什么?这很直截了当,我找不到任何东西表明in()不适用于小数。我需要一个“做”的地方吗?谢谢 data clustered; set combd; if (avpm in(393821:450041) or avpm in(337601:393821) or avpm in (225161:281381)) and fsp in (.8768:1) then class='1'; if (avpm in(112720:168940)

此代码给出错误“应为整数常量”。为什么?这很直截了当,我找不到任何东西表明in()不适用于小数。我需要一个“做”的地方吗?谢谢

  data clustered;
  set combd;

 if (avpm in(393821:450041) or avpm in(337601:393821) or avpm in     
  (225161:281381)) and fsp in (.8768:1) then class='1';

 if (avpm in(112720:168940) or avpm in(56500:112720) or avpm in 
  (280.06:56500)) and fsp in (.8768:1) then class='2';

 if avpm in(280.06:56500) and (fsp in (.507:.6303) or fsp in (.3838:.507) 
  or fsp in (.2606:.3838)) then class='3';

 if avpm in(280.06:56500) and (fsp in (.1373:.2606) or fsp in   
  (.0141:.1373)) then class='4';

 if avpm in(280.06:56500) and fsp in (.8768:1) then class='5';

 if avpm in(280.06:56500) and (fsp in (.8768:1) or fsp in (.7535:.8768) or 
  fsp in (.6303:.7535)) then class='6';

run;

中的
不适用于小数

事实上,
中的
可能并不像你想象的那样

IN()
是根据SAS执行以下操作的操作员:

等于列表中的一个

注意
列表
。也就是说,它并不是说一个数字介于开始和结束之间;相反,它将从开始到结束扩展为整数列表,并评估它是否在该列表中。您可以在下面的页面中看到:

您可以使用简写符号指定要搜索的顺序整数的范围。使用语法M:N作为要搜索的列表中的值来指定范围,其中M是下限,N是上限。M和N必须是整数,M和N以及M和N之间的所有整数都包含在范围内

重要的是,根据定义,任何非整数的数字都不包括在此范围内。因此:

3.5 in (2:4)
为false,因为3.5不在列表中
(2,3,4)

您需要使用
ge
和/或
le
(或
gt
和/或
lt
)来执行所需操作

0.8768 le fsp le 1

你可以这样把它们连在一起,所以写起来还是比较容易的。

谢谢乔;有意义。如果十进制数列表是离散指定的,则in运算符可以处理它们,例如,如果x in(0,0.5,1)
在x等于0.5时为真。但是,你不能期望SAS能够与一组不可数的无穷多个数字相匹配。
0.8768 le fsp le 1