Как импортировать многострочный CSV в SAS - PullRequest
2 голосов
/ 14 сентября 2010

Я получил файл в этом формате.

abc;def;"ghi
asdasd
asdasd
asd
asd
aas
d
"

Теперь я хочу импортировать его с помощью SAS. Как мне обработать многострочные значения?

1 Ответ

4 голосов
/ 15 сентября 2010

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

Во-первых, вы можете попробовать этот оператор infile на шаге данных:

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;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...