楼主: xiaoxiahu0571
1480 6

[问答] 请教代码问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

86%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
3 点
热心指数
3 点
信用等级
1 点
经验
792 点
帖子
53
精华
0
在线时间
162 小时
注册时间
2009-10-19
最后登录
2017-1-24

楼主
xiaoxiahu0571 发表于 2010-11-25 23:39:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
if (first.user_id and flag_maxmin in(-99,99))  and (last.user_id and flag_maxmin in(-99,99)) then month_new=3;
请教这个代码有啥问题么?不能这么用么?
呵呵 结果表明是不能这么用的
请指教
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:First month Flag User mont 请教 代码

回帖推荐

soporaeternus 发表于6楼  查看完整内容

不知道是不是这个意思,东施效颦了一下 就当做练习作业。。。。。。

本帖被以下文库推荐

沙发
jingju11 发表于 2010-11-26 01:07:46
1# xiaoxiahu0571
why?
我想这个或许在逻辑上不是你想要的,但是语法上应该没有什么问题吧

藤椅
pobel 在职认证  发表于 2010-11-26 07:25:14
代码应该没有问题:
data test;
    user_id=1;
    flag_maxmin=99;
run;
data test1;
    set test;
    by user_id;
    if (first.user_id and flag_maxmin in(-99,99))  and (last.user_id and flag_maxmin in(-99,99)) then do;
           month_new=3;
           put "This works!";
    end;
run;


if句的逻辑就相当于: if first.user_id   and last.user_id and flag_maxmin in(-99,99) then month_new=3;
和谐拯救危机

板凳
xiaoxiahu0571 发表于 2010-11-26 09:30:13
1 99 3
1 0 3
1 0 3
1-99 3
2 0 1
2 99 2
2-99 3
2 0 3
3 -99 3
3 0 3
3 99 3

就是一组类似这样的测试书库,比如user_id=2的时候我已经写出来了,当1和3组内的第一个和最后一个对应的flag_maxmin=-99 或者99时候,就统一打个标签3 麻烦再指教

报纸
pobel 在职认证  发表于 2010-11-26 09:48:55
用or就可以了


求职招聘    在线投稿
经管百科    三人行网

我也想创建词条赚积分


if (first.user_id and flag_maxmin in(-99,99))  or (last.user_id and flag_maxmin in(-99,99)) then month_new=3;


或者:
if (first.user_id or last.user_id) and flag_maxmin in (-99,99) then month_new=3;
和谐拯救危机

地板
soporaeternus 发表于 2010-11-26 09:57:04
  1. data test;
  2.         input user_id flag_maxmin;
  3.         datalines;
  4.         1 0
  5.         1 22
  6.         1 99
  7.         2 99
  8.         2 3
  9.         2 11
  10.         2 -99
  11.         3 -99
  12.         3 1
  13.         3 99
  14.         4 99
  15.         5 1
  16.         6 99
  17.         6 -99
  18.         ;

  19. run;

  20. data r;
  21.         array flg[2] _temporary_;
  22.         do until (last.user_id);
  23.                 set test;by user_id;
  24.                 if first.user_id then do;flg[1]=0;flg[2]=0;end;
  25.                 if first.user_id and flag_maxmin in (-99,99) then flg[1]=1;
  26.                 if last.user_id and flag_maxmin in (-99,99) then flg[2]=1;
  27.         end;
  28.         do until (last.user_id);
  29.                 set test;by user_id;
  30.                         if flg[1]=1 and flg[2]=1 then flag=3;
  31.                         else flag=.;
  32.                         output;
  33.         end;
  34. run;
复制代码
不知道是不是这个意思,东施效颦了一下
就当做练习作业。。。。。。
Let them be hard, but never unjust

7
xiaoxiahu0571 发表于 2010-11-26 13:10:06
5# pobel    不是这个意思哦

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

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