У меня большой текстовый файл с фиксированными столбцами, который мне нужно импортировать в SAS.Этот же файл содержит информацию на трех уровнях: фирмы, ассоциированные компании и экономические переменные.
Первый символ каждого наблюдения говорит о том, на каком уровне значения в строке примерно равны (1 - о фирмах, 2 - о сотрудниках ...).Согласно схеме, каждый уровень имеет разные переменные различной длины.
Это небольшой пример данных, которые я должен импортировать.Первые 4 переменные одинаковы, но впоследствии у каждого уровня есть свои переменные с разными длинами.Переменная «тип» определяет, на каком уровне находится наблюдение.И все остальные переменные сгруппированы в «other»:
DATA WORK.test;
INFILE DATALINES;
INPUT
type $ 1-1
full_registry $ 2-2
type_update $ 3-3
cnpj $ 4-17
other $ 18-1200
;
DATALINES;
1F 000000000001911BANCO DO BRASIL SA DIRECAO GERAL 022005110300
2F 000000000001912MARCIO HAMILTON FERREIRA 000***923641**100000020101117
2F 000000000001912NILSON MARTINIANO MOREIRA 000***491386**100000020101117
2F 000000000001912WALTER MALIENI JUNIOR 000***718468**100000020101117
2F 000000000001912PAULO ROGERIO CAFFARELLI 000***415907**100000020120327
2F 000000000001912ADRIANO MEIRA RICCI 000***295868**100000020180412
2F 000000000001912MARCOS RENATO COLTRI 000***890627**100000020180418
2F 000000000001912CARLA NESI 000***370266**100000020170614
6F 000000000001916499999
1F 000000000002722BANCO DO BRASIL SA MANAUS (AM) 022005110300
1F 000000000003532BANCO DO BRASIL SA SANTOS - SANTOS (SP) 022005110300
1F 000000000004342BANCO DO BRASIL SA CAMPOS EST.UNIF. 022005110300
1F 000000000005152BANCO DO BRASIL SA MACAPA-EST.UNIF. 022005110300
;;;;
run;
Как лучше всего читать этот файл?
Я думал одве возможности:
I.Прочитайте текст три раза с тремя макетами для каждого уровня.Выбросьте замечания, которые были прочитаны неправильно.Я не уверен, сработает ли это.
II.Прочитайте первые 4 переменных и поместите оставшуюся часть строки в строковую переменную, как я делал в этом примере.Затем используйте связку substr () для разделения нескольких переменных.Я не уверен, что это самый умный способ сделать это.
Мне не хватает гораздо более простого способа сделать это?
Я использую версию Enterprise 7.13.