В настоящее время я пытаюсь импортировать файл CSV с zipped в SAS, и у меня есть 3 столбца с датами, записанными в формате YYYY-MM-DD. Все данные в этом csv-файле находятся в уникальных строках, поэтому я предполагаю, что это строка и не распознается как числа (извините, что я только начал кодирование в последнее время, и я все еще изучаю множество основ). Что происходит, так это то, что SAS принимает 8 символов, и он появляется с 2010-08 годами, в основном не хватает дня. Я пробовал несколько способов обойти это с помощью ввода, но до сих пор не решая его. Я либо получаю пустой столбец, либо номер с конверсионными номерами (например, 52789 - я думаю, что это с того момента, когда в 1960 году SAS использует ссылку) Надеюсь, вы, ребята, можете дать мне несколько советов, как это сделать. Код:SAS: Импорт CSV-файла с датами
FILENAME IPC3data zip 'C:\Users\********\IPC3data.zip'
member='tls201_appln.csv';
DATA newdata;
INFILE IPC3data DLM=';' DSD FIRSTOBS=2;
INPUT appln_id $ appln_auth $ appln_nr $ appln_kind $ appln_filing_date $ appln_filing_year $ appln_nr_epodoc $ appln_nr_original $ ipr_type $ internat_appln_id $ int_phase $ reg_phase $ nat_phase $ earliest_filing_date $ earliest_filing_year $ earliest_filing_id $ earliest_publn_date $ earliest_publn_year $ earliest_pat_publn_id $ granted $ docdb_family_id $ inpadoc_family_id $ docdb_family_size $ nb_citing_docdb_fam $ nb_applicants $ nb_inventors;
Filing_date = input(appln_filing_date, ANYDTDTE10.);
put Filing_date=YYMMDD10.;
Early_filing_date = input(earliest_filing_date, ANYDTDTE10.);
put Early_filing_date=YYMMDD10.;
Early_publn_date = input(earliest_publn_date, ANYDTDTE10.);
put Early_publn_date=YYMMDD10.;
RUN; Спасибо!
Уважаемый Том, спасибо за комментарий по длине - это решило проблему! U R right, мне также нужно больше 8 пробелов для некоторых столбцов идентификаторов. Трюк, который я знал, но не думал об этом ... однако, если я добавлю часть informat/format, он всегда дает мне сообщение об ошибке «Информационный файл $ yymmdd не найден или не может быть загружен». Не уверен, что мне еще нужно добавить это, учитывая, что оператор длины дал мне полные даты? – Annina
Вы должны использовать информатив, соответствующий типу переменной.Поскольку ваша переменная была символом, SAS ищет информатив, который будет генерировать результат символа. Следовательно, дополнительный $ в сообщении об ошибке. Обязательно определите переменные как числа. – Tom