r********e 发帖数: 1686 | 1 data :
date value
01/01/09 11
12
13
02/01/09 14
.....
02/01/09以后value就是missing 了,然后02/01/09以后的值都是取上一个值的1/2次方
,改这么操作呐? |
l****u 发帖数: 529 | 2 data 2;
set data 1;
retain y 14;
if value='.' then y=y**(1/2);
else y=value;
run; |
r********e 发帖数: 1686 | 3
哎呀, 我忘记说清楚了。
又三个variable, 分别是group, date, value
每个group自打同一个date后的value都是missing的,然后这些missing值要取上一个值的1/2次方。最后一个nonmissing 的date都是相同的,然后missing的值的
date也是一样的。
retain的话赋值就要by group 那样了,不知道怎么弄才行。
group date value
a 01/01/09 10
a 01/02/09 missing
b 01/01/09 23
b 01/02/09 missing
c
c
d
d
......
【在 l****u 的大作中提到】 : data 2; : set data 1; : retain y 14; : if value='.' then y=y**(1/2); : else y=value; : run;
|
l****u 发帖数: 529 | 4 proc sort data=1 out=2;
by group date;
run;
data 3;
set 2;
by group date;
if first.date then do;
y=value;
output;
end;
y=y**(1/2);
output;
run; |
r********e 发帖数: 1686 | 5 我真是个笨人,举例子刚才又没举好。。。。。
那个missing value不是从第二个开始滴,貌似是第十几个开始滴。。。。。
【在 l****u 的大作中提到】 : proc sort data=1 out=2; : by group date; : run; : data 3; : set 2; : by group date; : if first.date then do; : y=value; : output; : end;
|