Создайте переменную для условно равного значения другой ячейки - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть набор данных с двумя переменными 'смещение' и 'запланировано'. Переменная 'shift' содержит несколько различных записей значений времени, например, "ED A 7a-4p"; Запланированная переменная содержит число или дни, на которые запланирован сдвиг, поэтому, например, в ячейке должна быть цифра «3», обозначающая 3 дня.

Я создал следующий код, чтобы понять, сколько смен укомплектовано в данный час.

data ED_A_7a_4p; 
set schedule schedule10;
if shift = 'ED A 7a-4p' and Scheduled = '3' then SevenToEightAM = ???;
if shift = 'ED A 7a-4p' and Scheduled = '7' then EightToNineAM  = ???;
run; 

Я бы хотел, чтобы созданные переменные, например 'SevenToEightAM', равнялись числу, указанному в столбце "запланированных" переменных. Поэтому, если «запланировано» равно 3, я бы хотел, чтобы «SevenToEightAM» равнялся 3.

Проблема в том, что «запланированный» является абсолютно случайным, и я не могу его автоматически кодировать, поэтому я надеялся, что в SAS есть условная опция, которая позволит мне сделать «SevenToEightAM» для любого «запланированного» в моем наборе данных.

1 Ответ

0 голосов
/ 23 апреля 2019

Вы, вероятно, хотите создать отчет TABULATE вместо создания новых переменных. Попробуйте:

data have; 
  set original;
  scheduled_num = input(scheduled, best12.);
run;

Proc TABULATE data=have;
  class shift;
  var scheduled_num;
  table shift, scheduled*sum;
...