我知道我可以使用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;
答案 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'),