SAS форматирование часов / минут / секунд - PullRequest
0 голосов
/ 26 апреля 2018

Поскольку в моих данных времени есть несколько беспорядочных символов (*, #, символ и т. Д.), Я вводю данные в формате best.32, а затем использую сжатие для удаления ненужного символа - time_1 = compress(Tim_original,'*#','l');

Однако мои данные принимают форму mm:ss и hh:mm:ss, и по какой-то причине, когда я использую time_1=input(time_1,time8.) для преобразования из строки в число, мои мм превращаются в часы ...!Как мне преобразовать мою строку в время / минуты, чтобы минуты не были переведены в часы с добавлением «: 00» в конце?

1 Ответ

0 голосов
/ 26 апреля 2018

Если в вашем тексте есть только один :, то в информате TIME это будет означать hh:mm, а не mm:ss.Вы можете просто проверить вашу строку и разделить результат вызова функции INPUT () на 60, чтобы преобразовать ее.

data test;
  input @1 timestr $8. ;
  time1=input(timestr,time8.);
  time2=input(timestr,time8.);
  if countw(timestr,':') < 3 then time2=time2/60 ;
  format time1 time2 time8.;
cards;
12:34
0:12:34
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...