楼主: liubing408
5554 21

[原创博文] 如何 从 A B C D E F 中随机选取一个? [推广有奖]

  • 0关注
  • 0粉丝

高中生

77%

还不是VIP/贵宾

-

威望
0
论坛币
40 个
通用积分
0.0053
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
351 点
帖子
28
精华
0
在线时间
12 小时
注册时间
2010-3-19
最后登录
2014-8-8

楼主
liubing408 发表于 2010-3-23 15:38:53 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
是这样的,我想要2400个字母,每6个为一组,共400组。
形成这样的数据集合
n               letter

1               D
2               A
3               F
4               C
5               X
6               Z

7               B
8               A
9               M
10             N
11             D
12             F
。。。
2399         A
2400         D         

  上述的n我知道怎么形成  :n=_n_这个语句就可以了。但是后面的字母是怎么出来的啊?
每个数字对应的字母都是随机从 A 、B 、 C 、D 、E 、F、  H 、 K 、L 、M、 N 、P 、R 、S、 T、 U 、V 、W、 X、 Y 、Z  这21字母中随机选一个的, 每一组,即1-6 、7-12 、13-18 。。。2395-2400 共400组 内部的字母不能重复,但是组之间可以重复,该怎么生成这个数据集啊?

希望高手们帮忙啊,急用!谢谢谢谢谢谢
二维码

扫码加我 拉你入群

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

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

关键词:letter 数据集 let 如何 字母

回帖推荐

soporaeternus 发表于6楼  查看完整内容

没仔细测,希望是对的

bobguy 发表于9楼  查看完整内容

You can ask for 2400 obs instead of 10 in below. 38 data _null_; 39 array x (26) $1 ('A' 'B' 'C' 'D' 'E' 'F' 40 'G' 'H' 'I' 'J' 'K' 'L' 41 'M' 'N' 'O' 'P' 'Q' 'R' 42 'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z'); 43 seed = 1234; 44 do n=1 to 10; 45 call ranperk(seed, 6, of x1-x26); 46 ...

本帖被以下文库推荐

沙发
hmnhmn 发表于 2010-3-23 15:40:28
这个问题好难啊···我也不会呀

藤椅
醉_清风 发表于 2010-3-23 15:53:01
你是要400组 还是和在一起的大表?
从来不需要想起 永远也不会忘记

板凳
醉_清风 发表于 2010-3-23 15:54:26
做400次无返回抽样 之后再set在一起 应该可以实现
从来不需要想起 永远也不会忘记

报纸
liubing408 发表于 2010-3-23 16:04:01
4# 醉_清风

所有字母放在一个表就可以。无返回抽样,怎么个用法?

地板
soporaeternus 发表于 2010-3-23 16:14:38
  1. data Cde;
  2.         do Cde=1 to 26 by 1;
  3.                 Des=byte(Cde+64);
  4.                 if Des not in ("G","I","J","O","Q") then output;
  5.         end;

  6. run;
  7. proc sql;
  8.         select Des into:Des separated by '' from Cde;
  9. quit;
  10. %put &Des;

  11. data TEST;
  12.         retain i Rst;
  13.         length Rst $1;
  14.         do i=1 to 2400 by 1;
  15.                 if mod(i,6)=1 then All=compress("&Des");
  16.                 Grp=ceil(i/6);
  17.                 length=length(All);
  18.                 x=ceil(ranuni(0)*length);
  19.                 Rst=substr(All,x,1);
  20.                 substr(All,x,1)="";
  21.                 All=compress(All);
  22.                 output;
  23.         end;
  24.         keep i Rst;
  25. run;
复制代码
没仔细测,希望是对的
已有 4 人评分经验 论坛币 学术水平 收起 理由
bakoll + 3 + 3 精彩帖子
eijuhz + 100 热心回答他人疑问
crackman + 1 精彩帖子
醉_清风 + 1 学习了

总评分: 经验 + 3  论坛币 + 103  学术水平 + 2   查看全部评分

Let them be hard, but never unjust

7
0703 发表于 2010-3-23 16:18:29
应该是一种密码的算法

8
醉_清风 发表于 2010-3-23 16:24:47
6楼的学习了 很简洁
从来不需要想起 永远也不会忘记

9
bobguy 发表于 2010-3-24 08:18:31
liubing408 发表于 2010-3-23 15:38
是这样的,我想要2400个字母,每6个为一组,共400组。
形成这样的数据集合
n               letter

1               D
2               A
3               F
4               C
5               X
6               Z

7               B
8               A
9               M
10             N
11             D
12             F
。。。
2399         A
2400         D         

  上述的n我知道怎么形成  :n=_n_这个语句就可以了。但是后面的字母是怎么出来的啊?
每个数字对应的字母都是随机从 A 、B 、 C 、D 、E 、F、  H 、 K 、L 、M、 N 、P 、R 、S、 T、 U 、V 、W、 X、 Y 、Z  这21字母中随机选一个的, 每一组,即1-6 、7-12 、13-18 。。。2395-2400 共400组 内部的字母不能重复,但是组之间可以重复,该怎么生成这个数据集啊?

希望高手们帮忙啊,急用!谢谢谢谢谢谢
You can ask for 2400 obs instead of 10 in below.

38   data _null_;
39      array x (26) $1  ('A' 'B' 'C' 'D' 'E' 'F'
40                           'G' 'H' 'I' 'J' 'K' 'L'
41                           'M' 'N' 'O' 'P' 'Q' 'R'
42                            'S' 'T' 'U' 'V' 'W' 'X' 'Y' 'Z');
43      seed = 1234;
44      do n=1 to 10;
45         call ranperk(seed, 6, of x1-x26);
46         put  @5 'n=' n  ' x= ' x1-x6;
47      end;
48   run;

    n=1  x= G D L F J A
    n=2  x= G F M B J O
    n=3  x= M X Z T L J
    n=4  x= I N M C E A
    n=5  x= C S M J F L
    n=6  x= U F S P N V
    n=7  x= I G U O S Y
    n=8  x= M A D E H T
    n=9  x= F J G I Q B
    n=10  x= A S K D C V
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
Tigflanker + 5 + 3 + 3 + 3 观点有启发

总评分: 经验 + 3  论坛币 + 8  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

10
liubing408 发表于 2010-3-24 09:10:59
6# soporaeternus   这是高手啊!!佩服佩服,不过,我有一个疑问ranuni(0)这个函数,每次运行时得到的随机数都不一样啊,这样结果就没有办法重新再现了,呵呵 我改成ranuni(20100323)不管几时打开运行程序都可以,这样可以么?不会影响重复吧?

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-6 05:13