Как преобразовать несколько полей в SAS в числовое?

Я работаю над проектом, в котором я читаю необработанные данные переписи в корпоративное руководство SAS для обработки в виде другого объединенного результата. Первые несколько столбцов являются символьными полями, служащими географическими идентификаторами.

Остальные необработанные данные содержат числовые поля, все поля похожи на "HD01_VD01" и так далее до цифр, таких как "HD01_VD78". Тем не менее, время от времени данные чисел переписи подавляются, и некоторые наблюдения имеют "*****" в исходных данных, как на рисунке ниже. Всякий раз, когда это происходит, SAS читает в числовом поле как символ.

Что может быть хорошим способом гарантировать, что в любое время "HD01_VD(whatevernumber)" всегда будет числовым и преобразует "*****" в пустое / пропущенное значение, например "." сохраняя таким образом поле числовым?

Я не хочу жестко кодировать каждый экземпляр поля, считываемого как символ, обратно в цифру, потому что мой код работает со многими различными таблицами переписи. Будет ли макро переменная способ сделать это? Оператор if в шаге данных каждой таблицы переписи?

1 ответ

Использование массивов и их зацикливание будет лучшим вариантом; как упомянуто в комментарии david25272.

Другой вариант - изменить формат полей в Enterprise Guide, либо в:

Задача импорта, которая читает файлы: измените поле на числовое

или же

Добавьте задачу Query Builder: создайте поле вычисления и используйте это расширенное выражение. input(HD02_V36,11.)

Другие вопросы по тегам