2015-03-24 2 views
-2

Как я могу сгенерировать код SAS и ID с 5 цифрами (буквы & Numbers)? Если первые 3 должны быть буквами, а последние 2 должны быть цифрами.sas сгенерирует 5-значный идентификационный код, который первым должен быть буквами и последними 2-мя номерами

+1

Покажите то, что вы уже пытались - размещение образца кода и данных будет незаконным и лучшим ответом на ваш вопрос. –

+0

Вы хотите сделать это на шаге данных или в макросе? – DCR

+0

сколько ID вам нужно? –

ответ

0

Вы можете создать уникальное сопоставление целых чисел от 0 до 26^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 

где X, Y & Z являются целыми числами от 0 и 25 (который может быть представлен в виде букв алфавита), и a & b являются целыми числами от 0 и 9.


В качестве примера:

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() функцию Modulo, чтобы получить остаток от деления
  • функция floor() Настил, которая возвращает округленное вниз целую часть реального Спальных

Пару аналогичных (но немного более простых) примеров, чтобы начать работу, можно найти here.

Идите, и если вы застряли, задайте новый вопрос. Вероятно, вы получите лучший ответ от SO, если вы предоставите подробный вопрос, код, показывающий ваш прогресс, описание того, где и почему вы застряли, какие ошибки или предупреждения вы получаете, и некоторые примеры данных.