2015-09-07 2 views
0

Пытается вырезать метки заголовков разрыва страницы из другого структурированного набора данных. Без заголовков будет работать следующее:SAS import - удаление строк заголовков

data uk; 
infile "/folders/myfolders/import/withheader.txt" truncover; 
format promocode_order best10. date date9. time TIME8. code $20. singlecode $20. name $50. order_spend best8. shipping_cost best8. country_code $2.; 
informat date DDMMYY10. time TIME8. ; 
input @1 promocode_order @12 date @23 time @32 order_spend @45 shipping_cost @59 code/
name 1-50/
@1 country_code; 
country_code="UK"; 
run; 

Но наличие заголовков в проблемах. Есть ли способ, по которому я могу перебирать файл перед импортом и выбирать, какие записи импортировать. Я мог бы исключить, если он начнет с метки заголовка/пустым.

Спасибо!

+0

Вы должны разместить некоторые примеры данных, которые показывают заголовки. – Tom

ответ

0

Добавить оператор ввода dummy на ваш шаг данных, удерживая строку для следующего оператора ввода, и проверить, содержит ли автоматическая переменная _INFILE_ строку заголовка. Если это не будет продолжаться до вашего нормального заявления input.

E.g.

input @; 
if _INFILE_ ne "header row string" then <original input statement>; 
0

Обычно вы вводите некоторую часть строки и указываете из значения, что это заголовок, который следует удалить. Также не используйте инструкцию FORMAT для работы оператора LENGTH или ATTRIB. Поэтому, если ваша строка заголовка похожа на имена переменных, это может быть так же просто, как удаление строк, начинающихся с «PROMOCODE».

data uk; 
    infile "/folders/myfolders/import/withheader.txt" truncover; 
    length promocode_order date time 8 code singlecode $20 
     name $50 order_spend shipping_cost 8 country_code $2 
    ; 
    format date date9. time TIME8. ; 
    informat date DDMMYY10. time TIME8. ; 
    input @ ; 
    if infile=:'PROMOCODE' or _infile_=' ' then delete ; 
    input @1 promocode_order @12 date @23 time @32 order_spend @45 shipping_cost @59 code 
    /@1 name 1-50 
    /@1 country_code 
    ; 
run; 
Смежные вопросы