【问题标题】:how to retain values in a sas dataset?如何在 sas 数据集中保留值?
【发布时间】:2018-04-19 17:55:14
【问题描述】:

我有以下数据集

data have;
input pop$  district$ racemajor$;
cards;
    color   Aberdeen    .
    white   Aberdeen    .
    Black   Aberdeen    .
    Asian   Aberdeen    .
    Black   Adelaid  Yes
    Color   Adelaid     .
    white   Adelaid     .
    Asian   Adelaid     .
    White   Bellvill    .
    black   Bellvill    .
    Asian   Bellvill    .
;
run;

基本上我想拖动值'Yes'如果racemajor是'Yes'对应的区,这样它看起来像下面

data want;
    color   Aberdeen    .
    white   Aberdeen    .
    Black   Aberdeen    .
    Asian   Aberdeen    .
    Black   Adelaid     Yes
    Color   Adelaid     Yes
    white   Adelaid     Yes
    Asian   Adelaid     Yes
    White   Bellvill    .
    black   Bellvill    .
    Asian   Bellvill    .

我知道我可以使用first.retain 语句来执行此操作,我尝试了以下方法。但是,它似乎不起作用。

data want;
set have;
if first.district and racemajor='Yes';
retain racemajor;
run;

【问题讨论】:

  • 为什么最后一个阿德莱德没有YES?
  • 我怀疑这只是一个错字,如果不是我们可以添加一个 if.last
  • 对不起,我更正了错字

标签: sas retain


【解决方案1】:

试试这个,虽然为了安全起见你应该对地区的数据进行排序

data NEW;
drop test;
SET HAVE;
by district;
retain test;
if first.district then test = racemajor;
racemajor=test;
run;

【讨论】:

    【解决方案2】:

    这是更新技巧的一个很好的例子,master 是空的,你输出所有的 obs。

    data have;
       input (pop district racemajor) ($);
       cards;
        color   Aberdeen    .
        white   Aberdeen    .
        Black   Aberdeen    .
        Asian   Aberdeen    .
        Black   Adelaid  Yes
        Color   Adelaid     .
        white   Adelaid     .
        Asian   Adelaid     .
        White   Bellvill    .
        black   Bellvill    .
        Asian   Bellvill    .
    ;;;;
       run;
    proc print;
       run;
    data want;
       update have(obs=0) have;
       by district;
       output;
       run;
    proc print;
       run;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多