楼主: yz7891
7139 46

[原创博文] 数据比较问题 [推广有奖]

21
crackman 发表于 2010-4-27 16:21:43
可以把后面的5个步骤写一个宏
参数就是x y z j
和n1 n2 n3 n4
没时间去写了
期待牛人写出来

22
crackman 发表于 2010-4-27 16:22:26
全部是data里面完成的

23
yz7891 发表于 2010-4-27 16:45:33
谢谢 非常感谢

24
sushe1527 发表于 2010-4-27 17:17:26
data m;
input x y z j@;
cards;
1 2 3 2
2 3 4 3
1 2 3 4
8 1 6 5
2 3 4 6
1 2 3 4
9 5 6 5
4 2 6 6
7 5 6 5
2 3 7 6
9 5 6 5
1 0 7 6
8 3 6 5
;
run;

proc transpose data=m out=x;var _all_;run;
%let c=%sysfunc(open(x,i));%let n=%eval(%sysfunc(attrn(&c,nvars))-1);
data x1;set x;array x _char_ _name_ ;array z(*)   col1-col&n;
do i=1 to dim(z);if z(i)=max(of col1-col&n) then c=i;end;
do i=1 to dim(z);if z(i)<max(of col1-col&n)&i<=c then z(i)=max(of col1-col&n);
end;drop i c;run;
proc transpose data=x1 out=final(drop=_name_);run;
已有 1 人评分学术水平 热心指数 收起 理由
crackman + 1 + 1 呵呵不错

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

25
soporaeternus 发表于 2010-4-27 17:45:44
我发现一个规律,看见楼上就有transpose......
Let them be hard, but never unjust

26
soporaeternus 发表于 2010-4-27 17:51:43
  1. data x;
  2.         input x;
  3.         datalines;
  4.         1
  5.         2
  6.         3
  7.         4
  8.         1
  9.         1
  10.         2
  11.         1
  12.         3
  13.         2
  14.         ;
  15. run;

  16. proc sql;
  17.         select max(x),min(x) into :max ,:min from x;
  18. quit;

  19. %put &max &min;

  20. data y;
  21.         set x;
  22.         retain y &max;
  23.         x1=max(x,y);
  24.         if x=y then y=&min-1;
  25. run;
复制代码
后一个问题,试试看
已有 1 人评分学术水平 热心指数 收起 理由
crackman + 1 + 1

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

Let them be hard, but never unjust

27
yatming 发表于 2010-4-27 17:55:38
26# soporaeternus
I agree!

28
yz7891 发表于 2010-4-27 17:56:04
谢谢你们,非常感谢
ERROR: You cannot open WORK.X.DATA for output access with member-level control because WORK.X.DATA
is in use by you in resource environment DMS Process.
这个该咋办。运行了一次修改后就不能运行第二次 要把SAS关了才行。。

29
yatming 发表于 2010-4-27 17:59:06
把open函数的返回值赋值,然后close掉,x=open();y=close(x);宏的话外层再包装sysfunc,使用宏变量即可。

30
sushe1527 发表于 2010-4-27 18:17:07
soporaeternus 发表于 2010-4-27 17:45
我发现一个规律,看见楼上就有transpose......
还有我和crackman经常一起出现哈

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

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