SAS Как преобразовать строку во время при загрузке данных из CSV? - PullRequest
1 голос
/ 21 ноября 2019

Я пытаюсь загрузить данные из CSV. У меня есть несколько форматов: дата, время, число, строка. У меня нет проблем с преобразованием данных в этот формат, кроме формата времени. Данные выглядят:

Date,Time,Transaction,Item
2016-10-30,9:58:12,1,Bread
2016-10-30,10:05:36,2,Scandinavian
2016-10-30,10:08:00,3,Hot chocolate

Мой код:

data lab0.piekarnia;
INFILE 'path_to_csv' delimiter=',' firstobs=2;
format Date yymmdd10.;
format Time time8.;
INPUT 
    Date yymmdd10.
    Time time8.
    Transaction 
    Item $;
run;

Результат

Что я пробую? Я пытаюсь вручную преобразовать строку '12:22:22', этот метод дает хорошие результаты, но я не знаю, как я могу реализовать это при загрузке CSV.

data ds1;
j = input('12:22:22',HHMMSS8.);
format j time8.;
run;

1 Ответ

1 голос
/ 21 ноября 2019
data have;
INFILE "path_to_csv" truncover delimiter=',' firstobs=2 ;
format Date yymmdd10.;
format Time time8.;
INPUT date time transaction item $32.;
informat
    Date yymmdd10.
    Time time.;
/*Instead input and informat statements you can use:
INPUT date:yymmdd10. time:time. transaction item $32.;
*/
run;
...