Как я могу получить час от числа, хранящегося как 630 и 2030, что означает 06:30 и 20:30 соответственно - PullRequest
1 голос
/ 22 апреля 2019

У меня есть данные, где временные переменные имеют значения, хранящиеся как 630 и 2030 и т. Д., И мне нужно выбрать часы из временной переменной, используя код SAS. (из данного каталога - 630 и 2030 означает 06:30 и 20:30)

1 Ответ

1 голос
/ 22 апреля 2019

Один из подходов, как предлагает Джон Дворжак, состоит в делении на 100 и использовании целого числа / остатка для получения значений часов / минут.Преобразуйте это в секунды, чтобы получить фактическое значение времени, которое можно отформатировать как таковое в SAS.

data want;
infile cards;
input rawdata; /* get raw values */
mins=mod(rawdata/100,2)*100; /* extract mins */
hours=round(rawdata/100,1); /* extract hours */
hhmm=(hours*60*60)+(mins*60); /* convert to seconds */
format hhmm hhmm5.; /* format as time */
put hours= mins= hhmm=; /* print to log */
cards;
630
2030
;run;

возвращает:

часов = 6 минут = 30 ччмм = 6:30
часов = 20 минут = 30 ччмм = 20: 30

enter image description here

...