sas proc import txt с разделителем внутри наблюдений

Мой первый вопрос как новому пользователю SAS 9.3. Я хочу использовать proc import для чтения большого текстового файла с dlm = ’,’. Но есть одна переменная, между которой в некоторых наблюдениях есть «,», например. «Хартфорд, Коннектикут». (не все из них, другие вроде «XL Center».) Есть ли способ, которым я могу прочитать «Хартфорд, Коннектикут» в одной переменной точно так же, как «XL Center» при использовании импорта proc в этот текстовый файл? Большое спасибо

Отредактировано здесь: извините, я не должен помещать цитату вокруг записи. НЕТ кавычек на любой записи, будь то центр XL или Хартфорд, штат Коннектикут. когда dlm установлен как запятая, строка имеет Hartford, CT создает дополнительный столбец и впоследствии перемещает записи в неправильный столбец.


person YXZ    schedule 14.11.2014    source источник
comment
Вы уверены, что разделитель на самом деле не ",", как Хартфорд, Коннектикут, F, 43? Это нормально для Норвегии.   -  person Stig Eide    schedule 14.11.2014
comment
Вот блог, в котором приводится другой пример, где поле с запятыми заключено в кавычки: blogs.sas.com/content/sastraining/2010/11/19/   -  person Stig Eide    schedule 14.11.2014
comment
Спасибо за сообщение. Работает как шарм, хотя мой вопрос остается, поскольку в моем случае нет кавычек.   -  person YXZ    schedule 15.11.2014


Ответы (1)


Пока в вашем текстовом файле есть кавычки вокруг разделителя, он будет работать автоматически. Например:

/* example data */
data _null_;
   file "%sysfunc(pathname(work))/some.csv"; 
   put 'head1,head2,head3';
   put 'XL Center,1,"Hartford, CT"';
run;

/* import */
proc import datafile="%sysfunc(pathname(work))/some.csv" 
     out=example
     dbms=dlm
     replace;
     delimiter=",";
     datarow=2;
run;

введите описание изображения здесь

person Allan Bowe    schedule 14.11.2014
comment
у меня недостаточно RP для голосования, иначе я бы сделал это. Хотя мой вопрос остается, поскольку в записи НЕТ кавычек, которые нужно объединять. - person YXZ; 15.11.2014
comment
В этом случае вам придется вернуться к поставщику источника данных и попросить его предоставить данные в удобочитаемом формате (нет программного обеспечения, которое могло бы считывать данные таким образом). Альтернативный вариант (если у вас есть закрытый список примеров, например ‹Hartford, CT›) - сначала обработать данные, чтобы заключить такие примеры в кавычки, а ЗАТЕМ прочитать их, используя proc import или что-то еще. - person Allan Bowe; 15.11.2014