创建一个变量以有条件地等于另一个单元格的值

时间:2019-04-23 18:51:40

标签: sas

我有两个变量“ shift”和“ scheduled”的数据集。 “ 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 :(得分:0)

您可能想要一个TABULATE报告,而不是创建新变量。试试:

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

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