2010-09-14 1 views

ответ

4

Ответ может зависеть от того, что приводит к появлению линейных переводов, каков их тип перевода, а также, возможно, в ОС, на которой работает SAS, а также на версию SAS, которую вы используете. Не зная, какой-либо из ответов на эти вопросы, вот несколько предложений:

Во-первых, вы могли бы попробовать это входной_файл заявление на вашем шаге данных:

infile "C:\test.csv" dsd delimiter=';' termstr=crlf; 

termstr=crlf говорит SAS, чтобы использовать только символы перевода строки Windows, для запуска новых записей.

В качестве альтернативы, вы можете иметь SAS предобработать ваш файл побайтно, чтобы гарантировать, что любые символы перевода строки в пределах спаренных кавычки заменяются (возможно с пробелами):

data _null_; 
    infile 'C:\test.csv' recfm=n; 
    file 'C:\testFixed.csv' recfm=n; 
    input a $char1.; 
    retain open 0; 
    if a='"' then open=not open; 
    if (a='0A'x or a='0D'x) and open then put '00'x @; 
    else put a $char1. @; 
run; 

Это заимствовано из here для справки. Возможно, вам придется немного поработать с этим кодом, чтобы заставить его работать. Идея состоит в том, что вы затем прочитали полученный csv в SAS со стандартным шагом данных.

+0

Это было сложно. Спасибо, sasfrog. –

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

  • Нет связанных вопросов^_^