SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 655|回复: 4
打印 上一主题 下一主题

请教SAS数据集排列问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2009-5-1 22:35:19 | 只看该作者

请教SAS数据集排列问题

例如,某sas结果输出到数据集a中的排列方式如下
i/j   1        2           3   
1    -   -0.78    0.35
2   -0.78   --        0.17
3  0.35     0.17    --

如果我想把a 的数据新排列到b  格式做如下转变

name     stat
1:2      -0.78
1:3        0.35
2:3       0.17
请问应该怎么排,用什么样的语句能将数据集a 的格式转化为数据集b的格式,在些谢过了!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2009-5-2 20:37:03 | 只看该作者

Re: 请教SAS数据集排列问题

使用array的方法将其输出即可~~
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2009-5-5 16:41:51 | 只看该作者

Re: 请教SAS数据集排列问题

能不能进一步指点?帮忙写个数组语句吧,我在SAS中也做了很多的尝试,比如
data c;set a;
array myarray(3,3) i1j1 i1j2 i1j3 i2j1 i2j2 i2j3 i3j1 i3j2 i3j3;
ab=myarray(1,2);ac=myarray(1,3);bc=myarray(2,3);
run;
结果运行后数据库新建的字段是空的。

我也尝试了以下:
data c;set a;
array myarray(9) i1j1 i1j2 i1j3 i2j1 i2j2 i2j3 i3j1 i3j2 i3j3;
ab=myarray(1,2);ac=myarray(1,3);bc=myarray(2,3);
run;
结果还是空的,请高手指点!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2009-5-5 21:25:59 | 只看该作者

Re: 请教SAS数据集排列问题

[code:3puu1i2m]
data a;
input j1 j2 j3;
cards;
. -0.78 0.35
-0.78 . 0.17
0.35 0.17 .
;
run;
data b;
array A {3} j1 j2 j3;
do i=1 to 3;
   set a point=i;
   do j=1 to 3;
      if i<j then do;
         name=compress(i||':'||j);
         stat=a{j};
         output;
      end;
   end;
end;
keep stat name;
stop;
run;
[/code:3puu1i2m]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2009-5-6 11:14:56 | 只看该作者

Re: 请教SAS数据集排列问题

高手就是高手啊!!真是太感谢您了!! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> 已经搞定了!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 15:50 , Processed in 0.068158 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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