Удаление кавычек и пробелов в наборе данных SAS
Я работаю в SAS EG и DI, столкнувшись с очень специфической проблемой.
Когда я смотрю на столбец набора данных в SAS DI Studio или 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) в середине строки.