Sas 基于以值结尾的值在何处条件上过滤?
熟悉使用like函数过滤字符值,是否可以对数值执行相同操作Sas 基于以值结尾的值在何处条件上过滤?,sas,Sas,熟悉使用like函数过滤字符值,是否可以对数值执行相同操作 Col A Col B 1 3214.22 2 4432.11 3 11.65 4 342.98 例如,以下内容适用于字符值: data test; set table (Where = (Col B like '%.22)); run; 您可以执行计算以确定比较所需的小数部分 data want; set have; where round ( ab
Col A Col B
1 3214.22
2 4432.11
3 11.65
4 342.98
例如,以下内容适用于字符值:
data test;
set table (Where = (Col B like '%.22));
run;
您可以执行计算以确定比较所需的小数部分
data want;
set have;
where round ( abs(b) - int(abs(b)), 1e-8 ) = 0.22; /* 1e-6 is rounding level, used here as a fuzz factor */
run;
或者,根据@whymath,比较函数(如CATS
或PUTN
)返回的数值的字符表示形式
where cats(b) like '%.22'; /* character value being compared depends on BESTw. chosen by CATS */
where put(b,best15.2) like '%.22'; /* match fractional parts >= .215 to < .225 */
猫(b)喜欢“%.22”;/*要比较的字符值取决于BESTw。猫选*/
其中放置(b,best15.2)像“%.22”;/*匹配大于等于.215到小于.225的小数部分*/
您可以执行计算以确定比较所需的小数部分
data want;
set have;
where round ( abs(b) - int(abs(b)), 1e-8 ) = 0.22; /* 1e-6 is rounding level, used here as a fuzz factor */
run;
或者,根据@whymath,比较函数(如CATS
或PUTN
)返回的数值的字符表示形式
where cats(b) like '%.22'; /* character value being compared depends on BESTw. chosen by CATS */
where put(b,best15.2) like '%.22'; /* match fractional parts >= .215 to < .225 */
猫(b)喜欢“%.22”;/*要比较的字符值取决于BESTw。猫选*/
其中放置(b,best15.2)像“%.22”;/*匹配大于等于.215到小于.225的小数部分*/
您可以使用cat()
函数将列B
转换为其字符类型您可以使用cat())
将列B
转换为字符类型的函数@Richard是否有将字符列B重新格式化为数字列的函数?如果要将字符更改为数字,则需要转换值,而不是更改其格式。在SAS中,格式只是关于如何显示值的说明,而不是更改存储的值。函数的作用是将字符串转换为数字。通过该函数,您可以使用信息而不是格式。正常的数字信息32.
可用于将字符串转换为数字。@Richard是否有将字符列b重新格式化为数字列的函数?如果要将字符更改为数字,则需要转换值,而不是更改其格式。在SAS中,格式只是关于如何显示值的说明,而不是更改存储的值。函数的作用是将字符串转换为数字。通过该函数,您可以使用信息而不是格式。正常的数字信息32.
可用于将字符串转换为数字。