SAS中如何用程序命令在数据库文件中增加一列序列号?

SAS中如何为一文件增加序列号?
在SAS运行过程中,中间生成一过程文件,如果导成excel表,可以在左侧插入一列,在第一列第一个单元格里输入一个数字,然后下拉,就可以成为1、2、3、4、5...的序列号。那如果数据量很大,导excel表不完整,就无法这么做。
如何在程序中直接增加一个命令,加入数据序列号?假设该数据文件为a的话?
我用了retain,但是可以计算出有多少行,就是不显示增加的列。
data a; set a;然后怎么做?
谢谢!

您可以使用_N_系统变量来为每一行数据添加一个序列号。以下是一个示例代码:

bash
Copy code
data a;
set a;
seq = _N_;
run;
这将在数据集 a 中添加一个名为 seq 的新列,并为每行数据分配一个序列号。_N_系统变量代表数据集中的当前观察行号。

请注意,如果您希望在运行多个 data 步骤时保留观察行号,则必须使用 retain 语句。以下是一个带有 retain 语句的示例代码:

bash
Copy code
data a;
retain seq 0;
set a;
seq + 1;
run;
此代码将在 a 中添加一个名为 seq 的新列,并为每行数据分配一个递增的序列号。在第一行,将使用 retain 语句将 seq 初始值设置为 0,并保留该值。在每一行,seq 将加 1,并将新值保留在下一行使用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-16
proc sql;

create table new as

select monotonic() as id,

*

from sashelp.class ;

quit;本回答被提问者采纳
第2个回答  2015-11-12
不知道你什么数据库 ,假设ORACLE的话
oracle 有个 sequence 可以产生序列, 你 在表上加个字段 比如ID 然后插入的时候
sequence.nextVal

http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html
相似回答