算上sas

Fre*_* Ng 4 sas

也许是一个愚蠢的问题......我得到了以下数据集:

id count
x    1  
y    2
z    3
a    1
b    2
c    3
etc.
Run Code Online (Sandbox Code Playgroud)

我想要这个:

id count group
x    1    1
y    2    1
z    3    1
a    1    2
b    2    2
c    3    2  
etc.
Run Code Online (Sandbox Code Playgroud)

这是我尝试的:

data macro_1; set vix.macro_spy; where macro=1;
count+1;
if count>3 then do;
    count=1;
end;
    group=0;
    if count=1 then group+1;
    run;
Run Code Online (Sandbox Code Playgroud)

但它没有用.如果我曾经获得'count = 1',如何将所有'group'添加一个?谢谢.

Lon*_*ish 5

甚至更简单

data want;
set vix.macro_spy;
group+(count=1);
run;
Run Code Online (Sandbox Code Playgroud)

  • 它将count = 1评估为true/false,在SAS中取值为1/0.因此,当count = 1时,它将1加到组值,否则它会加0.当以var + ...形式创建变量时,会自动保留前一个值.如果你把var = var + ...那么你需要指定一个显式的retain语句.希望这可以帮助. (3认同)