标题: 如何比较一维数据里的数 [打印本页] 作者: shiyiming 时间: 2010-6-18 06:00 标题: 如何比较一维数据里的数 [color=#FF00FF:20t1kv9x]比如我想比较如下一组数里在两值相等的位置做个记号。确切说是前一个和它的后一个是否相等就ok!
非常感谢!
x i
2 .
3 .
5 1
5 .
8 .
9 .[/color:20t1kv9x]作者: shiyiming 时间: 2010-6-18 09:17 标题: Re: 如何比较一维数据里的数 连着3个5,4个5,怎么办?
data step
[code:39wuk1i3]data temp;
input x;
id=_n_;
datalines;
2
3
5
5
8
9
;
data temp1(drop=x rename=(temp=x));
set temp(keep=x) end=last;
temp=lag(x);
if x=temp then i=1;
if _n_ gt 1 then output;
if last then do;
temp=x;
call missing(x,i);
output;
end;
run;[/code:39wuk1i3]
sql
[code:39wuk1i3]proc sql;
create table temp2 as
select a.x,case
when a.x=b.x then 1
else .
end as i
from temp a left join temp b
on a.id=b.id-1
order by a.id;
quit;[/code:39wuk1i3]作者: shiyiming 时间: 2010-6-19 01:01 标题: Re: 如何比较一维数据里的数 [color=#BF4080:aa3jsf9n]版主的程序都写的特别完整和专业。。我学到不少函数的使用,但我还想知道比如用_n_知道了数据id后,能不能直接找出满足某种条件的id呢?
比如把满足x值等于5的id值赋给p值:
data a;
set temp;
id=_n_;
p=_n_ where x=5 ; ??[/color:aa3jsf9n]作者: shiyiming 时间: 2010-6-19 08:22 标题: Re: 如何比较一维数据里的数 没看明白,大概这样吧
[code:21zycvxx]data a;
set temp;
if x=5 then p=_n_;
run;[/code:21zycvxx]