3

如何向 SAS 中已创建的数据集添加新观察?例如,如果我有带有变量“x”和“y”的数据集“dataX”,并且我想添加新的观测值,该观测值乘以观测数 n 的 2,我该怎么做?

数据X:
xy
1 1
1 21
2 3

我想创建:

数据X:
xy
1 1
1 21
2 3
10 210

其中第 4 个观察值是第 2 个观察值乘以 10。

4

4 回答 4

5
data X;
input x y;
datalines;
1 1
1 21
2 3 
;
run;



data X ;
set X end=eof;
if eof then do;
output;
x=10 ;y=210;
end;
output;
run;
于 2014-06-05T12:46:39.813 回答
4

这是执行此操作的一种方法:

data dataX;
   input x y;
   datalines;
1 1
1 21
2 3
run;

/* Create a new observation into temp data set */
data _addRec;
  set dataX(firstobs=2); /* Get observation 2 */
   x = x * 10;  /* Multiply each by 10 */
   y = y * 10;
   output;      /* Output new observation */
   stop;
run;

/* Add new obs to original data set */
proc append base=dataX data=_addRec;
run;

/* Delete the temp data set (to be safe) */
proc delete data=_addRec;
run;
于 2013-02-04T14:03:59.510 回答
4
data a ;
 do kk=1 to 5 ;
    output ;
 end ;
run;

data a2 ;
    kk=999 ;
    output ;
run;

data a; set a a2 ;run ;

proc print data=a ;run ;

结果:SAS 系统 1

                              OBS     kk

                               1       1
                               2       2
                               3       3
                               4       4
                               5       5
                               6     999
于 2013-10-09T20:20:21.943 回答
0

您可以使用宏来获得您想要的结果:

  1. 编写一个宏,它将首先读取DataSet,何时_n_=2将 x 和 y 乘以 10。

  2. 之后创建另一个DataSet只保留你的乘法价值的说x'=10xand y'=10y

  3. 传入DataSet另一个宏,它将设置原始数据集和新创建的数据集。

逻辑是您必须创建另一个具有值的数据集,10x然后再使用10y先前的数据集进行设置。

我希望这个能帮上忙 !

于 2013-02-04T12:44:09.450 回答