Это кажется невероятно простым, но я просто не могу найти нужную информацию в SAS для чтения в виде данных, которые у меня есть, которые выглядят так:
9 Bittersweet #FD7C6E (253, 124, 110) 48 1949
10 Black #000000 (0,0,0) 8 1903
Мне нужно прочитать взначения в круглых скобках в виде трех отдельных числовых переменных, и я не могу найти информацию, которая просто «читает числовые символы, пока не встретит нечисловые символы».Файл не полностью разделен запятыми, тем более жаль, что (кто бы ни "проектировал" этот формат файла, он должен быть застрелен, мертв, похоронен, воскрешен и снова застрелен!) Проблема с данными в скобках заключается в том, что иногда после пробелазапятая, а иногда нет.Я получил первое число и первый набор символов после числа, считанного с помощью ввода в столбце, поскольку #
всегда находится в столбце 32. Я прочитал шестнадцатеричное шестнадцатеричное значение (просто с использованием символа там),
Вот мой MWE:
Data crayons;
Infile 'path\crayons.dat' MISSOVER;
Input crayon_number
color_name $ 4-31
hex_code $ 33-38 @42
red 3. @','
green 3. @','
blue 3. @')'
pack_size
year_issued
year_retired;
Run;
Строка Bittersweet
прочитана правильно, но не строка Black
.(year_retired
пусто для обоих из них - меня это не касается.) В строке Black
я правильно получаю переменную hex_code
, но ничего после этого.
Поэтому я предполагаю, что главный вопрос заключается в следующем: как мне прочитать целое число переменной длины, которое гарантированно содержит НЕ с запятой, особенно если за ней сразу следует запятая?
Возможно, на более высоком уровне: где я могу найти подобные вещи?У меня есть эти вопросы о чтении в грязных данных, и я не знаю, куда идти, чтобы узнать.По моему опыту, SAS Language Reference совершенно не подходит для этого.Если данные помещаются в их аккуратные маленькие коробочки, вы можете идти.Что-нибудь вне этого, и их ссылка бесполезна.
Большое спасибо за ваше время!