SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 736|回复: 7
打印 上一主题 下一主题

关于组合的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2008-6-29 15:09:21 | 只看该作者

关于组合的问题

假设我有一个橱柜,有3层,第一层有a,b,c 3个物品;第二层有d,e两个物品;第三层有f,g,h,i4个物品,现从每一层拿出一个,找出所有的组合,如adf,adg等等,我想到怎么去处理,但是程序还没搞出来,有兴趣的做做吧。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2008-6-29 16:49:49 | 只看该作者

Re: 关于组合的问题

data new;
do f1="a","b","c";
do f2="d","e";
do f3="f","g","h","i";
new=f1||f2||f3; output;
end;
end;
end;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2008-6-30 18:45:57 | 只看该作者

Re: 关于组合的问题

多谢,想的太复杂,没想到用对简单的就可以了,呵呵。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2008-6-30 19:55:20 | 只看该作者

Re: 关于组合的问题

呵呵 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> ,You are welcome.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2008-6-30 22:20:08 | 只看该作者

Re: 关于组合的问题

请问有没有一个好的算法,这个如果是10层20层,那要10几20几的循环,要崩溃了。。。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2008-7-1 12:51:15 | 只看该作者

Re: 关于组合的问题

一种办法就是将每一个抽屉的字符作为一个变量,从每一个抽屉中抽取变量组合成您要的变量。这个可以用proc sql 完成但是如果是十几二十层的数据,是没有使用价值的,因为sql语句的执行效率低下,我按照您的意思写的宏代码,运行后自动终止了。如果真的有十几20 层的话比如十五层每层三个数据就有14348907就有一千万多数据,太大了,机器一运行就不行不行了,而且那么多条记录也失去了研究价值。
如果层数比较小的话。每一个抽屉用一个数据集合里面有一个变量ch表示字母
比如有五个抽屉。
proc sql;
create tabel as
select trim(left(c1.ch))|| trim(left(c2.ch))|| trim(left(c3.ch))|| trim(left(c4.ch))|| trim(left(c5.ch))
from c1,c2,c3,c4,c5;
quit;
因为没用连接所以是笛卡尔乘积把所有组合提取出来了。但是样本一大就没用了。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2008-7-1 17:22:49 | 只看该作者

Re: 关于组合的问题

真的很感谢你,这种牵涉到效率的问题还是值得我们思考下,这个问题源自一博士的论文,具体多少层我不知道,这个只是抽取的一个简单模型,呵呵。今天跑了一个20层的,sas在运行了1:30小时后报了资源不足,郁闷,生成了一张4G的表。
Thanks again!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2008-7-1 17:46:52 | 只看该作者

Re: 关于组合的问题

呵呵 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-4 21:41 , Processed in 0.087881 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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