楼主: huanglian969
5464 29

[问答] 求助!!第n个变量与前n-1个变量逐个相减,SAS筛选数据 [推广有奖]

21
梦想世界1 发表于 2014-1-21 11:20:00
huanglian969 发表于 2014-1-20 19:33
不好意思,再麻烦您一下,如果我要将算出来的差值跟某个特定的值比较,可以用数组吗?
而且是两个数组的 ...
1,你要算差值,当然用数组比较好;
2,和特定的值比较?就直接比好了啊,你这里不就是和特定的值比较的嘛,就像大于3,大于1 啊,
如果你所说的特定的值是一系列数的话,那还是要用数组的,感觉就新建一个数组吧。例如a(i)-b(j)>c(i)

22
梦想世界1 发表于 2014-1-21 11:34:04
huanglian969 发表于 2014-1-20 18:46
嗯,谢谢,您跟 @梦想世界1  在处理这个Loop的时候想到一块去了,真是英雄所见略同,谢谢!

23
huanglian969 发表于 2014-1-22 08:40:31
梦想世界1 发表于 2014-1-21 11:12
1,其实你不用关注E这个变量,它只有标记作用,e后面为1是因为t4只满足了一个,t4产生的e把T3产生的值覆盖 ...
("▔□▔) 呃,p4-p1=7-1=6>3   t4-t1=8-2=6>1,是满足的呀?我晕了

24
梦想世界1 发表于 2014-1-24 10:11:30
huanglian969 发表于 2014-1-22 08:40
("▔□▔) 呃,p4-p1=7-1=6>3   t4-t1=8-2=6>1,是满足的呀?我晕了
对呀,就和这个比是满足的,所以E=1;不是还要和P2,P3啥的比较嘛,是不满足的啊。。。所以T4不满足啊

25
huanglian969 发表于 2014-1-24 12:22:12
梦想世界1 发表于 2014-1-24 10:11
对呀,就和这个比是满足的,所以E=1;不是还要和P2,P3啥的比较嘛,是不满足的啊。。。所以T4不满足啊
哦,不好意思,是我的表述有问题了。我想要的是只要前面比一次有满足的就可以,就像P4的这种情况也是要的。

26
梦想世界1 发表于 2014-1-25 15:32:40
huanglian969 发表于 2014-1-24 12:22
哦,不好意思,是我的表述有问题了。我想要的是只要前面比一次有满足的就可以,就像P4的这种情况也是要的 ...
那程序中E>=1应该就可以了,试试看呢

27
huanglian969 发表于 2014-2-3 16:39:41
梦想世界1 发表于 2014-1-25 15:32
那程序中E>=1应该就可以了,试试看呢
嘿嘿,新年好。
我估计还是这一句的问题
if a(i)-a(j)>3 and b(i)-b(j)>1 then e+1; 这个应该是让第N个变量跟前面所有的比,要求每个都满足。
改了e之后,还是不行的,可能还是得修改下这个句子。

28
huanglian969 发表于 2014-2-11 23:14:13
求帮忙!!!

29
梦想世界1 发表于 2014-2-17 11:09:31
huanglian969 发表于 2014-2-3 16:39
嘿嘿,新年好。
我估计还是这一句的问题
if a(i)-a(j)>3 and b(i)-b(j)>1 then e+1; 这个应该是让第N个 ...
data raw;
  length p1 t1 p2 t2 p3 t3 p4 t4 8;
        input p1 t1 p2 t2 p3 t3 p4 t4;
cards;
1 2 4 4 8 6 7 8
2 1 6 6 7 11 12 15
3 2 7 2 11 6 15 12
20 16 11 15 17 20 16 24
;
run;
data a;
        array a(4) p1-p4;
        array b(4) t1-t4;
        array c(3) c2-c4;
  set raw;

        do i=2 to 4;
          e=0;
          do j=1 to i-1;
                         if a(i)-a(j)>3 and b(i)-b(j)>1 then e+1;
                end;
                if e>=1 then c(i-1)=b(i);
        end;
run;
你试一下不可以吗?

30
huanglian969 发表于 2014-2-17 16:32:12
梦想世界1 发表于 2014-2-17 11:09
data raw;
  length p1 t1 p2 t2 p3 t3 p4 t4 8;
        input p1 t1 p2 t2 p3 t3 p4 t4;
恩,可以了,回头拿俺那个大的数据试试,非常感谢

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 21:52