Как указать, является ли конкретная дата рабочим временем или нет. (СПСС)

Привет, я новичок на этом сайте, поэтому простите меня, если я недостаточно тщательно искал этот вопрос!

По сути, я занимаюсь исследовательским проектом, в котором одной из переменных является то, был ли сделан рентген в обычное рабочее время или нет. График работы с понедельника по пятницу с 8:00 до 17:00.

Я ввел дату и время каждого рентгеновского снимка, используя отдельные переменные -[дата+время (дд.мм.гггг чч:мм)] -[время (чч:мм)].

Я планировал вводить эту информацию вручную, но я подумал, что, безусловно, есть способ автоматизировать это, и, поскольку у меня почти нулевой опыт работы с SPSS, я подумал, что должен попросить вас, милые люди, помочь мне!

Заранее спасибо


person user1481902    schedule 26.06.2012    source источник
comment
Я смущен, что ваш вопрос. В каком текущем формате находятся данные и в каком формате вы хотите, чтобы они были?   -  person Andy W    schedule 27.06.2012
comment
Извините, наверное, я не очень хорошо объяснил. Я вручную ввожу необработанные данные из рентгеновских снимков младенцев. В основном я ввожу время и дату, когда был выполнен рентген, как переменную, используя «дату» в качестве типа переменной. Что мне нужно, так это узнать, была ли эта дата сб или воскресенье, и если это до 8 утра или после 5 вечера. Я мог бы сделать это вручную довольно легко, но у меня около 6000 случаев, поэтому это нереально. Я даже не уверен, может ли spss делать такие вещи, но я просто решил проверить.   -  person user1481902    schedule 28.06.2012
comment
Спасибо, так намного понятнее! Возможно, завтра я смогу написать пример, а пока вы хотите просмотреть XDATE. Они помогают извлечь конкретную необходимую информацию о времени данных из каждой записи, а затем можно просто сделать операторы if для определения критериев.   -  person Andy W    schedule 28.06.2012


Ответы (1)


Ниже я приведу краткий пример использования функции xdate для извлечения дня недели, а затем построения оператора if, чтобы определить, попадают ли эти даты и время в пределы workhours.

*Making example data.
data list free / xray_date (ADATE10) xray_time (TIME5).
begin data
7/6/2011 2:21
10/11/2011 15:42
07/06/2011 02:21
3/15/2011 0:21
end data.

*Here is example to find day of week name, 1 is Sunday and 7 is Saturday.
compute day_week = Xdate.Wkday(xray_date).

*to identify times of day in an if statement we need to make specific variables.
string begin_time end_time (A5).
compute begin_time = "08:00".
compute end_time = "17:00".
alter type begin_time end_time (TIME5).

*Then you can just make an if statement to identify whether a date-time meets your requirements.
compute workhours = 0.
if day_week >= 2 and day_week <= 6 and xray_time >= begin_time and xray_time <= end_time workhours = 1.

В этом конкретном примере, если вы запустите команду list all., результат будет таким:

 xray_date xray_time day_week begin_time end_time workhours 

07/06/2011    2:21    4.00000     8:00     17:00     .00000 
10/11/2011   15:42    3.00000     8:00     17:00    1.00000 
07/06/2011    2:21    4.00000     8:00     17:00     .00000 
03/15/2011    0:21    3.00000     8:00     17:00     .00000

Вы можете видеть, что запись с 10/11/2011 была соответствующим образом классифицирована, так как это вторник и рабочее время. Все остальные записи не относятся к интервалу между 8:00 и 17:00, поэтому они инициализируются нулевым значением для переменной workhours.

person Andy W    schedule 29.06.2012
comment
Это фантастика! Спасибо за помощь, Энди. - person user1481902; 03.07.2012