我有一个10个文件的文件。和不同的参数。我需要为每个观察点添加一个新的“ID”变量,即数字1-10的列。 如何添加一个简单等于obs列的变量? 我想过用一个循环来做,定义一个空的大桶,在var上运行,每次在前面的观察中添加'1',但是,它看起来有点复杂。有没有更好的方法呢?
答案 0 :(得分:3)
您可以使用数据步骤自动变量_n_
。这是数据步骤循环的迭代计数。
Data want;
set have;
ID = _n_;
run;
答案 1 :(得分:1)
如果您选择Proc SQL解决方案,有两种方法: 1.无证:
proc sql;
create table want as
select monotonic() as row, *
from sashelp.class
;
quit;
记载:
ods上市关闭; ods输出sql_results = want;
proc sql number; select * from sashelp.class; 退出;
ods listing;
答案 2 :(得分:0)
@DomPazz答案肯定会奏效!如果您想根据属性返回观察数量,请尝试:
proc sort data= dataset out= sort_data;
by * your attribute(s) *;
data sort_data;
set sort_data;
by * your attribute(s) that is listed in above proc sort statement *;
if first.attribute then i=1; <=== first by group observation, number =1
i + 1; <==== sum statement (retaining)
if last.attribute and .... then ....; <=== whatever you want to do . Not necessary
run;
first
/ Last
在执行行操作时非常有用。