Набор данных CSV-SAS: запятая без строки не вызывает проблем - PullRequest
2 голосов
/ 30 января 2012

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

Foo,5,10,3.5
Bar,2,3,1.0

Проблема, с которой я столкнулся, заключается в том, что окончание строки «3.5» и «1.0» неправильно интерпретируются как значения переменных (вместо этого SAS жалуется, что они являются недопустимыми значениями, что приводит к ошибке NOTE: Invalid data for VARIABLE). Однако, когда я добавляю запятую в конец строки, примерно так:

Foo,5,10,3.5,
Bar,2,3,1.0,

Тогда все работает нормально. Есть ли способ, которым я могу заставить этот импорт работать без изменения исходного файла?

В настоящее время оператор INFILE моего шага DATA имеет опции DSD, DLM=',' и MISSOVER.

Ответы [ 2 ]

3 голосов
/ 30 января 2012

С этими данными в CSV-файле в среде Windows

Foo,5,10,1.5
Bar,2,3,2.1
Foo,5,10,3.5
Bar,2,3,4.1

Этот код работает (локально запускается SAS на компьютере с Windows)

filename f 'D:\Data\SAS\input.csv';
data input;
 infile f delimiter=','; 
 input char1 $ num1 num2 num3;
Run;

Как уже упоминалось @itzy, важна среда ... дополнительная информация поможет с решением

Когда вы работаете с данными из другой среды, вы можете использовать опцию TERMSTR в операторе INFILE , чтобы сообщить SAS, как завершаются строки данных.

2 голосов
/ 30 января 2012

Скорее всего, это связано с различными кодами для окончаний строк в Unix и Windows.Я предполагаю, что ваши данные поступают из другой операционной системы, нежели та, в которой вы используете SAS.

Решение состоит в том, чтобы изменить коды новой строки на правильную операционную систему.Если вы используете SAS в Unix-системе, попробуйте команду dos2unix.Если вы работаете в Windows, вы можете отредактировать файл CSV с помощью текстового редактора, такого как UltraEdit или Notepad ++, и сохранить файл в формате Windows.

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