sas生成5位数的id代码,前3个必须是字母,最后2个数字

时间:2015-03-24 11:49:49

标签: sas sas-macro

如何使用5位数字(字母和数字)生成SAS和ID代码?前三个必须是字母,后两个必须是数字。

1 个答案:

答案 0 :(得分:0)

您可以创建从026^3 * 10^2 - 1的整数到格式为AAA00的字符串的唯一映射。 This wikipedia page很好地介绍了不同数值基的概念。

你的地图看起来像这样

value = 100 * (X * 26^2 + Y * 26^1 + Z * 26^0) + a * 10^1 + b * 10^0

其中XY& Z025之间的整数(可以表示为字母表中的字母),a& b09之间的整数。


举个例子:

47416 = 100 * (0 * 26^2 + 18 * 26^1 + 6 * 26^0) + 1 * 10^1 + 6 * 10^0

使用:

0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

你得到:

47416 -> [0] [18] [6] (1) (6)
          A   S    G   1   6 

因此47416可以表示为ASG16


要以编程方式执行此操作,您需要逐步将数字拆分为商和余数,然后通过基数(10和26)除以,将余数存储为输出的一部分,并使用商进行下一次迭代。 你可能想要使用这些功能:

  • mod()模数函数,用于从除法中获取余数
  • floor() Flooring函数返回真实数字的向下舍入整数部分

可以找到一些类似(但稍微简单)的例子来启动here

快走,如果你遇到一个新问题就卡住了。如果你提供一个详细的问题,代码显示你的进展,你被困的地方和原因的描述,你得到的任何错误或警告以及一些样本数据,你可能会得到SO的最佳回复。