楼主: 小鳄鱼a
2011 3

求问如何判断大小的问题 [推广有奖]

  • 6关注
  • 10粉丝

已卖:280份资源

学科带头人

3%

还不是VIP/贵宾

-

威望
0
论坛币
125 个
通用积分
0.0040
学术水平
40 点
热心指数
45 点
信用等级
43 点
经验
32801 点
帖子
1185
精华
0
在线时间
1539 小时
注册时间
2009-7-16
最后登录
2018-10-5

楼主
小鳄鱼a 发表于 2014-10-6 11:25:45 |AI写论文
30论坛币
请教个问题     如何判断数据集中   对于每个x的取值    当y取值为1,2,3的时候 z的值都是变大的    而对于当y相同的值,当x取1,2,3的时候,z的取值也是变大的   。如果成立的话   ,就输出一个%let x=1;把   否则输出x=0.

data a;
input x y z;
cards;
1 1 12
1 2 15
1 3 18
2 1 13
2 2 19
2 3 20
3 1 16
3 2 20
3 3 22
;
run;


最佳答案

playmore 查看完整内容

看看下面的代码好用不?
关键词:cards Input Data card put 如何

沙发
playmore 发表于 2014-10-6 11:25:46
看看下面的代码好用不?
  1. data a;
  2. input x y z;
  3. cards;
  4. 1 1 12
  5. 1 2 15
  6. 1 3 18
  7. 2 1 13
  8. 2 2 19
  9. 2 3 20
  10. 3 1 16
  11. 3 2 20
  12. 3 3 22
  13. ;
  14. run;

  15. /* 对于每个x的取值,检查当y取值为1,2,3的时候,z的值都是变大的 */
  16. proc sort data=a;
  17.         by x y;
  18. run;

  19. data a;
  20.         set a;
  21.         by x;
  22.         diff_1=z-lag(z);
  23.         if first.x then diff_1=0;
  24. run;

  25. /* 对于每个y的取值,检查当x取值为1,2,3的时候,z的值都是变大的 */
  26. proc sort data=a;
  27.         by y x;
  28. run;

  29. data a;
  30.         set a;
  31.         by y;
  32.         diff_2=z-lag(z);
  33.         if first.x then diff_2=0;
  34. run;

  35. /* 输出结果 */
  36. %let x=1;

  37. data a;
  38.         set a;
  39.         if diff_1 < 0 or diff_2 <0 then call symputx('x',0);
  40. run;

  41. %put x=&x;
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
小鳄鱼a + 5 + 3 + 3 + 3 thanks

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

藤椅
fisher163 发表于 2014-10-7 05:30:51
看了一眼 没有搞懂什么意思。。。

板凳
小鳄鱼a 发表于 2014-10-7 09:39:26
fisher163 发表于 2014-10-7 05:30
看了一眼 没有搞懂什么意思。。。
对于每组x的取值,当y取123的时候,z是变大的。对于每组y的取值,当x取123的时候,z也是变大的

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 05:13