SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1264|回复: 9
打印 上一主题 下一主题

吐血请教:同一变量前后比较的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2005-12-6 15:55:44 | 只看该作者

吐血请教:同一变量前后比较的问题

<!-- s:roll: --><img src="{SMILIES_PATH}/icon_rolleyes.gif" alt=":roll:" title="Rolling Eyes" /><!-- s:roll: -->
数据如下
pano  n  m
002      1     12
002      2     23
002      5     18
004      1     15
004      2     26
004      5     28
....................

我想比较是否随着n的增大m的值也随着增大,如果不是输出!
请问这个问题如何解决?
因为我的数据量比较大,所以不能将m分解为多个变量,困扰很久了!
期盼高人指点!非常感谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2005-12-6 23:10:41 | 只看该作者

@

是否随着n的增大m的值也随着增大?

考虑spearman秩相关。

[code:569d8]proc corr spearman;
var m n ;
run;[/code:569d8]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2005-12-7 09:36:03 | 只看该作者

对不起!我没有说清楚!

<!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s:P -->  非常感谢collen的帮助!对不起!这里我没有说清楚!
我想要作的就是比较大小然后输出不符合要求的数据,比如说
pano   n   time
002     1   10:08
002     4   11:07
002     8   11:00
.......................
002   100  23:00
003      1   9:00
003      2   9:25
......................
我要求的是比较随着n的增大时间是否是越来越晚,第三行时间比第二行要早,这样第三行的数据就要求被输出,我这里的数据量很大所以我不能把所有的time值再分解为多个变量!很郁闷呀!请多多指教!万分感谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2005-12-7 11:13:46 | 只看该作者

Question

是按照pana进行分类统计吗?
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2005-12-7 15:42:53 | 只看该作者

可以试试用LAG函数

data temp;
input pano $3. n m;
cards;
002 1 12
002 2 23
002 5 18
004 1 15
004 2 26
004 5 28
;
run;
proc sort data=temp;by pano n;

data temp1;set temp;by pano n;
if (lag(pano)=pano and n&gt;lag(n)) and m&lt;=lag(m) then output;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2005-12-7 16:10:42 | 只看该作者

非常感谢大家的帮忙!

moonlight 谢谢!
我按照你的办法做了可以的非常感谢! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
我还想就是把当前的有问题的数据和前一个同它相比较的数据同时输出来这样看着结果比较明了!怎么办?希望能够给予帮助!谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2005-12-8 09:52:43 | 只看该作者

将两个数据集串联

将n变量descending sort,仍然使用LAG函数挑出你想要的数据(即,M&gt;LAG(M))生成新数据集,将两个数据集串联九可啊
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2005-12-8 12:13:34 | 只看该作者

谢谢!

因为我的数据量比较大,很多的情况都是这样的,如果再这样就会增加太多数据集,我想最好可以在一个数据集里面搞定,能够用某一函数控制在数据部中输出的变量!这样比较方便吧呵呵!辛苦了! <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) --> 谢谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2005-12-8 13:03:15 | 只看该作者

你还真是懒啊!!!

借用上面的数据集(temp,排序后的)

data temp2;
set temp(rename=(pano=pano1 n=n1 m=m1));by pano1 n1;
pano=lag(pano1);n=lag(n1);m=lag(m1);
if (lag(pano1)=pano1 and n1&gt;lag(n1)) and m1&lt;=lag(m1) then id=1;
if id=1 or lag(id)=1 then output;
drop pano1 n1 m1 id;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2005-12-8 15:29:57 | 只看该作者

谢谢!

谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 15:36 , Processed in 0.149300 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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