gpt4 book ai didi

arrays - 在 SAS 中生成数组的所有唯一排列

转载 作者:行者123 更新时间:2023-12-04 17:47:24 28 4
gpt4 key购买 nike

在 SAS 中,如果我有如下所示的字符串或数组,

array x[4] $1 ('A' 'B' 'C' 'D');

我需要生成元素的所有“唯一”排列,如下所示,
[ABCD]
[ABC]
[BCD]
[ACD]
[ABD]
[AB]
[AC]
[AD]
[BC]
[BD]
[CD]
[A]
[B]
[C]
[D]

SAS 中是否有用于生成数组所有可能组合的函数?

最佳答案

假设 : 相信你在找combinations而不是 permutations ,所以顺序无关紧要,BAAB都是一样的。

使用 call allcomb子程序和 comb函数来找出可能的组合。

阅读更多关于 allcombcomb这里

  • http://support.sas.com/documentation/cdl/en/lefunctionsref/63354/HTML/default/viewer.htm#p0yx35py6pk47nn1vyrczffzrw25.htm

  • 和这里
  • http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a001009658.htm

  • 简而言之 -
  • call allcomb子程序给出了可能的组合 n r时的元素他们中的被采取和
  • comb函数为您提供 n 之外的组合数元素 r他们中的一次被采取。

  • data test(keep=my_string);
    length my_string $50.;
    array a[4] $ ('A' 'B' 'C' 'D');

    n = dim(a);

    do k=1 to n;
    do j=1 to comb(n,k);
    call allcomb(j,k,of a[*]);
    do i = 1 to k;
    if i=1 then do; my_string="";counter=0;end;
    counter=counter+1;
    my_string=cat(compress(my_string),compress(a[i]));
    if counter=k then output;

    end;
    end;
    end;
    run;

    关于arrays - 在 SAS 中生成数组的所有唯一排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340151/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com