【问题标题】:Using first function使用第一个功能
【发布时间】:2016-11-24 16:45:31
【问题描述】:

鉴于以下条件,我需要创建一个新变量 WHLDR。我不确定最后一个 else if 是否正确。所以如果multi > 1 and ref_1 = 0 if rel =0 and ref_1=1 那么第一个满足这个条件的id whldr=1 如果不满足那么whldr =0,然后继续。下面是我的代码和示例数据。

data temp_all;
   merge temp_1  (in=inA)
         temp_2  (in=inB)
         temp_3  (in=inC)
   ;
   by id;
   firstid=first.id;

   if multi = 1 then do;
     if rel = 0 then whldr=1;
     else whldr = 0;
   end;

   else if multi > 1 and ref_1 >= 1 then do;
     if rel =0 and ref_1=1 then whldr=1;
     else whldr = 0;
   end;

   else if multi > 1 and ref_1 = 0 then do;
     if rel =0 and ref_1=1 then do;
       if rel =0 and ref_0 ne '0' then do;
         if first.id=1 then  whldr=1 ;
         else whldr=0;
       end;
     end;
   end;
run;

这里是示例数据:

data have ;
  input id a rel b multi ;
cards;
105 . 0 0 1
110 1 0 1 1
110 0 1 1 1
110 . 2 1 1
113 1 0 1 1
113 2 1 1 1
113 0 2 1 1
113 0 2 1 1
135 1 0 1 1
135 0 1 1 1
176 1 0 1 1
176 0 1 1 1
189 1 0 1 1
189 2 1 1 1
189 0 4 1 1
189 0 4 1 1
;

【问题讨论】:

  • 你需要更详细地解释你想要什么。例如,您如何定义一个人?你想要整个数据集中的第一个人吗?或在其他一些分组变量中,如状态?发布示例输入和结果数据将有助于阐明您想要什么。
  • 这就是我上面的代码。这些人是 whldr,我想要整个数据集中满足最后一个条件的第一个人。我有一个人级别的数据,我正在尝试获取第一个满足该条件的人(B),结果将是一个家庭级别的数据集。
  • 如果没有更多关于您想要的信息,我无法评估您复杂的 if/then 结构以查看它是否正确。但是,如果它标记了您想要的观察结果,那么您可能只需要添加一个 output;stop; 语句,以便获得单个观察结果数据集。
  • 如何粘贴表格以便查看数据?我正在根据上面指定的条件创建一个新变量“whldr”。
  • 该代码不完整。如果您发布说明您的问题的完整代码以及理想情况下的数据,这样我们就可以复制问题,这会有所帮助。否则这是一个猜测问题。

标签: if-statement sas datastep


【解决方案1】:

如果您有一个名为 WHLDR 的变量,并且您想要第一次观察它的值为 1,那么您可以运行这样的数据步骤。

data want ;
  set have (obs=1);
  where whldr=1 ;
run;

【讨论】:

  • 我正在根据 if then else 语句中的条件创建变量 WHLDR。所以 WHLDR 根据这三个条件得到 1 或 0 的值。
  • 第一条记录是第一个id。所以在上面的输入数据集中,id 103 有 3 条记录,所以第一条记录如果满足上面代码最后一个 else if 块中的条件,就会得到 whldr=1。
  • 你说的是 113 吗?请注意,您使用嵌套 IF 语句的方式没有一个示例记录可以到达检查 FIRST.ID 标志的代码行,因为它们都具有 MULTI=1。
  • 对不起,是的,我的意思是 113。
  • 所以你的意思是把first.id=1移到else if的最后一个块的顶部?
猜你喜欢
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2017-12-21
  • 1970-01-01
相关资源
最近更新 更多