2016-03-02 4 views
0

Я импортировал файл cvs и имею переменную «время отправления» в моем файле sas, который состоит из четырех цифр, например. 0856 за 08.56. Я бы хотел, чтобы SAS распознал его как время и хочу, чтобы он отображался как 08:56. Я пробовал:Преобразование числовой переменной в переменную времени SAS

put DEP_TIME hhmm5.; 

format DEP_TIME hhmm5.; 

Не работает. Кажется, это не так.

Любые подсказки?

+0

Вернитесь назад и исправьте это в своем CSV-импортировании, хотя - укажите информацию и формат для переменной. – Reeza

ответ

0

Я не думаю, что есть информатика, которая преобразует 4-значную строку за раз.

Там есть несколько способов сделать это, либо с помощью hms() и substr() функции или формат изображения пользовательского:

 
proc format ;             
    picture TM 
    low-high = '00:00' ;         
run ; 

data want ; 
    set have ; 
    /* hms and substr method */ 
    new_time1 = hms(substr(dep_time,1,2),substr(dep_time,3,2)) ; 
    format new_time1 hhmm5. ; 

    /* input/put with picture format */ 
    new_time2 = input(put(input(dep_time,4.),tm.),time5.) ; 
    format new_time2 hhmm5. ; 
run ; 
+0

substr работал как шарм! Большое спасибо! – Ije

2

Informat B8601TM.

33   data _null_; 
34   t='0856'; 
35   time = input(t,B8601TM.); 
36   format time time.; 
37   put 'NOTE: ' (_all_)(=); 
38   run; 

NOTE: t=0856 time=8:56:00 
Смежные вопросы