楼主: jigouhuan
2406 9

[有偿编程] 如何通过sas实现不同字母的排列组合 [推广有奖]

  • 0关注
  • 0粉丝

高中生

55%

还不是VIP/贵宾

-

威望
0
论坛币
3473 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
181 点
帖子
14
精华
0
在线时间
32 小时
注册时间
2015-1-31
最后登录
2021-3-19

500论坛币
例如想要实现从12个字母里面随机选择4个字母进行排序 想看不同的组合应该如何写代码?
关键词:如何写 sas
沙发
l1i2n3i4n5g 在职认证  发表于 2017-10-24 18:51:36 |只看作者 |坛友微信交流群
  1. data test;
  2.    array x[12] $1 ('A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L');
  3.    n=dim(x);
  4.    k=4;
  5.    do i=1 to comb(n,k);
  6.       call allcomb(i,k,of x[*]);
  7.       output;
  8.    end;
  9.    keep x1-x4;
  10. run;
复制代码

使用道具

藤椅
iwasguru 发表于 2017-10-25 06:59:07 |只看作者 |坛友微信交流群
同学你这个问题问得很不清楚。

1. 你是要产生随机抽样的4字符序列,还是要所有4字符序列的全排列?
2. 如果是产生随机抽样的4字符序列,请问序列内4个字符可否重复,序列与序列间可否重复?需要产生多少个样本?
3. “进行排序 ”又是什么意思?序列内部要排序,还是序列之间要排序?还是根本不需要排序(语误)?

使用道具

板凳
乐天天12300 发表于 2017-10-25 10:35:28 |只看作者 |坛友微信交流群
  1. data test(drop=i ii iii iiii);
  2.      do i="a" ,"b","c","d","e","f","g","h","i","j","k","l";
  3.             do ii="a" ,"b","c","d","e","f","g","h","i","j","k","l";
  4.                    do iii="a" ,"b","c","d","e","f","g","h","i","j","k","l";
  5.               do iiii="a" ,"b","c","d","e","f","g","h","i","j","k","l";
  6.                  if i ^= ii and i ^= iii and i^=iiii and ii^=iii and ii^=iiii and iii^=iiii then do;
  7.                  value=cats(i,ii,iii,iiii);
  8.                  output;
  9.                                  end;
  10.               end;
  11.            end;
  12.          end;
  13.       end;
  14. proc print;
  15. run;
复制代码
这是所有的排列组合情况,然后你可以使用随机抽样的方式抽取

使用道具

报纸
jigouhuan 发表于 2017-10-25 20:20:52 |只看作者 |坛友微信交流群
iwasguru 发表于 2017-10-25 06:59
同学你这个问题问得很不清楚。

1. 你是要产生随机抽样的4字符序列,还是要所有4字符序列的全排列?
抱歉哈 是我问题阐述的不清楚 想要的是从十个字母里面选出四个不同的字母然后让他们拼接在一切 如abcd 但是想避免如abcd和bcda cdab 这些情况 最后的结果应该是(10*9*8*7)/(4*3*2)种

使用道具

地板
jigouhuan 发表于 2017-10-25 20:23:20 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-10-25 10:23
感谢l1i2n3i4n5g 想问一下如果最后拼接的时候运用||但是最开始生成的变量过多 夸张地讲如1000个变量 那么在最后拼接的时候能有办法直接跳过一个一个去写||的方法一步到位得到最后的拼接结果吗 目前我只想到写一个宏十个十个去拼接

使用道具

7
jigouhuan 发表于 2017-10-25 20:29:33 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-10-24 18:51
十分感谢 学习了!

使用道具

8
l1i2n3i4n5g 在职认证  发表于 2017-10-26 09:14:43 |只看作者 |坛友微信交流群
jigouhuan 发表于 2017-10-25 20:23
感谢l1i2n3i4n5g 想问一下如果最后拼接的时候运用||但是最开始生成的变量过多 夸张地讲如1000个变量 那么 ...
cats(of _all_)
cats(of x:)
cats(of x--z)
类似的都可以试一下

使用道具

9
jigouhuan 发表于 2017-10-26 17:49:55 |只看作者 |坛友微信交流群
l1i2n3i4n5g 发表于 2017-10-26 09:14
cats(of _all_)
cats(of x:)
cats(of x--z)
好的 感谢!

使用道具

10
l6397 发表于 2017-10-27 22:57:31 |只看作者 |坛友微信交流群
学习了!!!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 08:12