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;它没有效果,因为它的值来自您的数据集“检查”。否则可以。