全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
5185 10
2010-03-26
是这样的,我有2400条数据,想给每一条数据以字母命名的唯一的标识符。从  A 、B 、 C 、D 、E 、F、  H 、 K 、L 、M、 N 、P 、R 、S、 T、 U 、V 、W、 X、 Y 、Z中随机挑选3个,如果不考虑顺序,可以有1330种组合,
选择4个 可以有5985种组合,现在只能选择4个了。好像是用rannui()这个函数。可是我不知道怎么写这段程序。高手帮帮忙啊。我急用啊。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-3-26 16:06:27
复制代码
看看行不行,和之前那个类似嘛。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-26 16:58:56
貌似以前问过一样的吧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-26 20:59:58
soporaeternus 发表于 2010-3-26 16:06
复制代码
看看行不行,和之前那个类似嘛。。。
我的问题和以前的一样,你怎么保证选出来的ID不重复?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-26 23:36:07
复制代码
对不起,我没看到生成的标示需要唯一。
以上代码生成comp(21,4)的所有取法
抽样2400个......
希望有好办法
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-3-27 07:24:12
Here is Macro for Combination to generate all cases by choosing R out of any list with length >= R.
Reference: http://support.sas.com/techsup/technote/ts498.html

%MACRO COMBINATION(R) / PARMBUFF; /* the PARMBUFFf option assigns the invocation parameter list to the macro variable &SYSPBUFF */

%LET M = 2;
%LET LIST = ;
%DO %WHILE (%QSCAN(&SYSPBUFF, &M, %STR(,%))) NE );
        %LET ELEMENT = "%QSCAN(&SYSPBUFF, &M, %STR(,%)))";
        %IF &M = 2 %THEN %LET LIST = &ELEMENT;
        %ELSE %LET LIST = &LIST, &ELEMENT;
        %LET M = %EVAL(&M + 1);
%END;
%LET K = %EVAL(&M - 2);

%PUT &LIST;
%PUT &R;
%PUT &K;

DATA COMBINATION;
        KEEP V1 - V&R;
        ARRAY L{&K} $ 1 (&LIST);
    DO i1 = 1 TO DIM(L);
    %DO S = 2 %TO &R;
                DO i&S = i%EVAL(&S - 1) + 1 TO DIM(L);
        %END;
                %DO S = 1 %TO &R;                 
                        V&S = L{i&S};
                %END;
                OUTPUT;
        %DO S = 1 %TO &R;                 
                END;
        %END;
RUN;

%MEND COMBINATION;

%COMBINATION(4,A,B,C,D,E,F,H,K,L,M,N,P,R,S,T,U,V,W,X,Y,Z);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群