将虚拟变量添加到SAS数据集中,该数据集不依赖于现有数据

时间:2014-05-13 23:51:35

标签: sas

我真的很难找到以下简单问题的答案。假设我有一个包含100个观察值的现有数据集,并且我想添加一个变量,其在行1-50中具有值0,在行51-100中具有值1。我该怎么做?我试过了:

data new_data;
set existing_data;
 do i = 1 to 100;
  if i <= 50 then new_variable = 0;
  if i >= 51 then new_variable = 1;
 end;
run;

但它没有用。

2 个答案:

答案 0 :(得分:3)

是的,有一种方法,使用SAS内部变量_n_作为行号。像这样......

data new;
  set existing;
  if _n_<=50 then new_var=0;
  if _n_>50 then new_var=1;
run;

答案 1 :(得分:0)

好吧,我想出了一种方法。

data dummy;
do i = 1 to 50;
  new_variable = 0;
  output;
end;
do i = 1 to 50;
  new_variable = 1;
  output;
end;
run;

data new_data;
  merge existing_data dummy;
run;

有没有办法一次完成这一切?