#sas
#sas
Вопрос:
У меня есть набор данных SAS с символьным полем, содержащим последовательный ряд целых чисел со знаком, которые я могу легко извлечь с помощью функции SCAN(), вложенной в INPUT (для преобразования в best6. числовое) и СЖАТИЕ (для обработки некоторых, казалось бы, случайно возникающих пробелов), но я не могу понять, как сохранить отрицательный знак, который появляется примерно в половине моих записей.
Пример поля: «Результирующее количество1 = -139 количество2 = 458 …» Итак, в приведенном выше примере поля я бы извлек токен 4 и получил 139. Моя проблема в том, что мой код, подобный:
resultNumber = input(compress(scan(charField,4),''),best6.);
.. результат 139 вместо -139. Ценю любые советы, спасибо!
Ответ №1:
Обязательно укажите SCAN()
при вызове функции, какие символы использовать в качестве разделителей.
data _null_;
charField="Result quantity1 = -139 quantity2 = 458 ...";
resultNumber = input(compress(scan(charField,4,' '),''),best6.);
put (_all_) (=);
run;