2014-01-30 7 views
2

Я работал с коллегами по этому вопросу, искал его, редактировал этот код миллион раз, и я не могу заставить его работать.SAS: Укладка файлов CSV с пустыми наблюдениями

По существу, я пытаюсь складывать несколько файлов CSV в один набор данных SAS. Я создал ранее в своем SAS возможность находить все имена файлов [переменная fname внутри dirlist1]. Я пытался заставить этот код работать, но проблема в том, что некоторые из наблюдений в этих файлах CSV пусты. Так, например, столбец «яблоки» (см. Ниже) будет содержать большую часть столбца, но иногда будет иметь данные. В настоящий момент этот код читается в правильных данных, но когда наблюдение пустое (например, для наблюдения, «яблоки» пустые - он сдвигает мои данные влево, а не оставляет эту часть пустой. Есть ли что-то, чего я не вижу в этом текущий код, который может решить, что

в основном это пропуск texttext, текст ,, текст, текст < это пропуск, что пробел между запятыми и продолжается, и я хочу, что пустой

data all_data (drop=fname); 
    length bananas $256; 
    length apples $25; 
    length grapefruit $10; 
    length berries $10; 
set dirlist1; 
filepath = "&dirname"||fname; 
infile dummy filevar = filepath length=reclen firstobs=2 dlm=',' end=done missover; 
do while(not done); 
    myfilename = fname; 
    input bananas apples grapefruit berries; 
output; 
    end; 
run; 

Edit:. Для Примечание. Я основываю этот код на коде, опубликованном на сайте, основанном на UCLA. 1

+1

FYI, 'наблюдение' относится к строкам,' переменные' или 'столбцы' - это то, что вы имеете в виду. – Joe

ответ

2

Добавьте модификатор DSD к вашему заявлению infile.

infile dummy filevar = filepath length=reclen firstobs=2 dlm=',' end=done missover DSD; 

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

Для получения дополнительной информации см. the documentation on INFILE.

+0

Большое спасибо Джо - это сработало как шарм. Это вызвало у меня головную боль в течение всего дня, и вы ее сохранили :) Спасибо, спасибо – mmichaelx

Смежные вопросы