SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 634|回复: 3
打印 上一主题 下一主题

如何比较一维数据里的数

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-6-18 06:00:26 | 只看该作者

如何比较一维数据里的数

[color=#FF00FF:20t1kv9x]比如我想比较如下一组数里在两值相等的位置做个记号。确切说是前一个和它的后一个是否相等就ok!
非常感谢!
x    i
2 .
3 .
5  1
5 .
8 .
9 .[/color:20t1kv9x]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-6-18 09:17:14 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-6-19 01:01:35 | 只看该作者

Re: 如何比较一维数据里的数

[color=#BF4080:aa3jsf9n]版主的程序都写的特别完整和专业。。我学到不少函数的使用,但我还想知道比如用_n_知道了数据id后,能不能直接找出满足某种条件的id呢?
比如把满足x值等于5的id值赋给p值:  
data a;
set temp;
id=_n_;
p=_n_  where x=5  ; ??[/color:aa3jsf9n]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-6-19 08:22:18 | 只看该作者

Re: 如何比较一维数据里的数

没看明白,大概这样吧
[code:21zycvxx]data a;
   set temp;
   if x=5 then p=_n_;
run;[/code:21zycvxx]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 04:57 , Processed in 0.072121 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表