Как я могу сгенерировать код SAS и ID с 5 цифрами (буквы & Numbers)? Если первые 3 должны быть буквами, а последние 2 должны быть цифрами.sas сгенерирует 5-значный идентификационный код, который первым должен быть буквами и последними 2-мя номерами
ответ
Вы можете создать уникальное сопоставление целых чисел от 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, если вы предоставите подробный вопрос, код, показывающий ваш прогресс, описание того, где и почему вы застряли, какие ошибки или предупреждения вы получаете, и некоторые примеры данных.
Покажите то, что вы уже пытались - размещение образца кода и данных будет незаконным и лучшим ответом на ваш вопрос. –
Вы хотите сделать это на шаге данных или в макросе? – DCR
сколько ID вам нужно? –