如何根据不同的条件从数字键中隔离选择的数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据不同的条件从数字键中隔离选择的数字?相关的知识,希望对你有一定的参考价值。

我试图从数字产品密钥中提取国家ID,该密钥有两种类型:

对于SAS EG 7.1 1.一个7-8位数的密钥,前2-3位表示国家/地区ID。即对于国家代码为36的美国,产品密钥= 36XXXXX

对于国家代码为121的INDIA,产品密钥= 121XXXXX

  1. 带有第2,第3,第4位数字的13位数字键,表示国家ID,即美国,产品密钥= X036XXXXXXXXX

对于IN,产品密钥= X121XXXXXXXXX

使用以下代码来获取:

data want;
set have;
if length(key)>8 THEN COUNTRY_ID=substr(key), 2,3);
else COUNTRY_ID=substr(key,1,length(key)-5);
run;

它适用于带有7-8位数字键的第一种类型,但不适用于较长的13位数字键。它在国家ID中显示小数,即对于US,X036XXXX,而它应该只有36。

我需要更改数据类型吗?

答案

您应该包含一些示例数据,以便您的问题准确显示您遇到的问题以及您期望的内容,但我认为您只需要将country_id转换为数字:

country_id = input(substr(key, 2, 3), best.);

您当前的代码实际上只是取三个字符'036'并将它们存储在country_id中作为文本值; input()函数将其转换为数字。

以上是关于如何根据不同的条件从数字键中隔离选择的数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何按范围分组,或有条件地从查询结果中选择

在 R 中,如何使用各种条件将数字列变为一个新列?

KendoUI 图表不接受 JSON 数据的键中的数字

如何从任何对象键中过滤不区分大小写的对象数组

电路设计为什么要分数字地和模拟地?如何对模拟地与数字地隔离?

来自不同群体的数字组合