如何在SAS中的数据集之上添加新观察?

时间:2017-05-31 16:32:07

标签: sql sas dataset sql-insert

我知道我可以使用PROC SQL INSERT INTO(_Table_Name_)值('值') 或者使用INSERT INTO SET 变量名称 = numeric_value或' char_value'

但我的问题是:如何确保此值显示在数据集的顶部而不是默认的底部位置?

data temp;
input x y;
datalines;
1 2
3 4
5 6
;
run;

proc sql;
insert into work.temp
(x,y)
values (8,9);
quit;

2 个答案:

答案 0 :(得分:2)

如果不重写数据集,则无法在数据集的“顶部”插入值。 INSERT(和PROC APPEND)通过避免重写整个数据集来工作,而只是将行添加到底部。 SAS具有定义的数据结构,当使用正常的顺序处理时(与基于索引的或随机访问方法相反),观察物理按照它们将被处理的顺序物理存储。

要将行放在数据集的“顶部”,只需创建一个新数据集(如果您选择,可以使用相同的名称,尽管从技术上讲它将是一个不同的数据集),然后根据您的选择添加它们;尽管我将把数据插入到实际应用程序中的单独数据集中(因为它可能来自不同的数据源),即使是下面这么简单的东西也可以工作。

data temp;
  if _n_=1 then do;  *if on first iteration, add things here;
    x=8; 
    y=9; 
    output;  *outputs the new record;
  end;
  set temp;
  output;  *outputs the original record;
run;

答案 1 :(得分:0)

您可以在数据步骤中执行以下操作:

('x','y','m','2','a','c','16/11/2012 00:00:00','06/08/2013 00:00:00'),