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 倍です。
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 倍です。
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;
これを行う 1 つの方法を次に示します。
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;
マクロを使用して、目的の結果を得ることができます。
DataSet
最初に読み取り_n_=2
、xとyに10を掛けるマクロを記述します。
その後DataSet
、複数の値のみを保持する別の値を作成x'=10x
しますy'=10y
。
DataSet
元のデータセットと新しく作成されたデータセットを設定する別のマクロの両方を渡します。
論理的には、値を使用して別のデータセットを作成し10x
、10y
その後、前のデータセットで設定する必要があります。
これがお役に立てば幸いです。