Sas 保留缺少值的变量

Sas 保留缺少值的变量,sas,Sas,这应该是一个简单的问题。我有这样一个数据集: id mtna 1 . 2 . 3 1.7 4 . 5 . 6 5.2 7 9.6 8 . 9 . 10 . data check; set check (rename=(mtna=orig_mtna)); retain mtna; mtna=coalesce(orig_mtna, mtna); drop orig_mtna; run; 我想要这样的东西: id mtna 1 . 2 . 3 1.7 4 1.7 5 1

这应该是一个简单的问题。我有这样一个数据集:

id mtna
1  .
2  .
3  1.7
4  .
5  .
6  5.2
7  9.6
8  .
9  .
10 .
data check;
set check (rename=(mtna=orig_mtna));
retain mtna;
mtna=coalesce(orig_mtna, mtna);
drop orig_mtna;
run;
我想要这样的东西:

id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 1.7 
6 5.2 
7 9.6 
8 9.6 
9 9.6 
10 9.6 
data check; set check; 
retain lag_mtna; 
lag_mtna=lag1(mtna); 
if mtna=. then mtna=lag_mtna; 
run; 
id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 . 
6 5.2 
7 9.6 
8 9.6 
9 . 
10 .
基本上,当缺少值时,只保留先前的观察值。 所以我试着这样做:

id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 1.7 
6 5.2 
7 9.6 
8 9.6 
9 9.6 
10 9.6 
data check; set check; 
retain lag_mtna; 
lag_mtna=lag1(mtna); 
if mtna=. then mtna=lag_mtna; 
run; 
id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 . 
6 5.2 
7 9.6 
8 9.6 
9 . 
10 .
但结果是这样的:

id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 1.7 
6 5.2 
7 9.6 
8 9.6 
9 9.6 
10 9.6 
data check; set check; 
retain lag_mtna; 
lag_mtna=lag1(mtna); 
if mtna=. then mtna=lag_mtna; 
run; 
id mtna 
1 . 
2 . 
3 1.7 
4 1.7 
5 . 
6 5.2 
7 9.6 
8 9.6 
9 . 
10 .

如何保留所有这些值?谢谢你的帮助。

谢谢你的关注。我用一种简单的方法解决它

data check; set check;
retain mtna_new mtna;
if mtna ne . then mtna_new=mtna;
run;

谢谢你的关注。我用一种简单的方法解决它

data check; set check;
retain mtna_new mtna;
if mtna ne . then mtna_new=mtna;
run;

谢谢你的关注。我用一种简单的方法解决它

data check; set check;
retain mtna_new mtna;
if mtna ne . then mtna_new=mtna;
run;

谢谢你的关注。我用一种简单的方法解决它

data check; set check;
retain mtna_new mtna;
if mtna ne . then mtna_new=mtna;
run;

不需要保留来自数据集的变量。 加上一些技巧,可能是这样的:

id mtna
1  .
2  .
3  1.7
4  .
5  .
6  5.2
7  9.6
8  .
9  .
10 .
data check;
set check (rename=(mtna=orig_mtna));
retain mtna;
mtna=coalesce(orig_mtna, mtna);
drop orig_mtna;
run;

不需要保留来自数据集的变量。 加上一些技巧,可能是这样的:

id mtna
1  .
2  .
3  1.7
4  .
5  .
6  5.2
7  9.6
8  .
9  .
10 .
data check;
set check (rename=(mtna=orig_mtna));
retain mtna;
mtna=coalesce(orig_mtna, mtna);
drop orig_mtna;
run;

不需要保留来自数据集的变量。 加上一些技巧,可能是这样的:

id mtna
1  .
2  .
3  1.7
4  .
5  .
6  5.2
7  9.6
8  .
9  .
10 .
data check;
set check (rename=(mtna=orig_mtna));
retain mtna;
mtna=coalesce(orig_mtna, mtna);
drop orig_mtna;
run;

不需要保留来自数据集的变量。 加上一些技巧,可能是这样的:

id mtna
1  .
2  .
3  1.7
4  .
5  .
6  5.2
7  9.6
8  .
9  .
10 .
data check;
set check (rename=(mtna=orig_mtna));
retain mtna;
mtna=coalesce(orig_mtna, mtna);
drop orig_mtna;
run;
不要“保留”mtna;它没有效果,因为它的值来自您的数据集“检查”。否则可以。不要“保留”mtna;它没有效果,因为它的值来自您的数据集“检查”。否则可以。不要“保留”mtna;它没有效果,因为它的值来自您的数据集“检查”。否则可以。不要“保留”mtna;它没有效果,因为它的值来自您的数据集“检查”。否则可以。