Удаление кавычек и пробелов в наборе данных SAS

Я работаю в SAS EG и DI, столкнувшись с очень специфической проблемой.

Когда я смотрю на столбец набора данных в SAS DI Studio или EG, это выглядит нормально. Но когда я вставляю данные в блокнот, появляются некоторые кавычки и пробелы.

Данные, которые я вижу в EG: без пробелов

Но те же данные при копировании в блокнот,

дополнительные кавычки и пробелы появляются следующим образом (в 6-й строке): с пробелами и кавычками

Я обнаружил эту проблему, когда я использую это поле в качестве ключа в соединении, другие связанные значения столбца для 6-й строки не будут выводиться, так как совпадение для этой 6-й записи не выполняется.

Я пробовал много вещей, таких как tranwrd, dequote и сжатие, но ни одна из них не изменила мой результат.

Может кто-нибудь, пожалуйста, помогите понять, в чем проблема и как это можно решить.

1 ответ

Решение

Посмотрите, что находится в столбце, чтобы вы могли решить, как с этим справиться. Этот запрос покажет вам как строку символов, так и шестнадцатеричное представление строки.

proc sql;
  select postcode,put(trim(postcode),$hex.) as hexcode,count(*) as nobs
    from x
    group by 1,2
  ;
quit;

Поэтому, если вы видите шестнадцатеричные символы, такие как 0A, 0D, A0, 08 или другие непечатаемые коды, вы можете выяснить, что происходит.

Таким образом, вы можете увидеть, что у вас есть POSTCODE='LS5 3BT' с HEXCODE='4C533520334254' для большинства записей. Но, возможно, есть такие, которые выглядят как POSTCODE='LS5 3BT', но значение HEXCODE является чем-то вроде '0A4C533520334254', что означает, что у вас есть символ перевода строки в начале строки. Или, возможно, вместо пробела ('20'X) у вас есть вкладка ('09'X) в середине строки.

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