班里有15个人,10个topic,其中5个topic要求出现两次,这样正好15个人选择15个topic,用sample函数分别对同学和topic做不放回随机抽样,然后组合在一起即可,思路很简单,娱乐一下。注:这里设置了随机数种子,因为当天时2019年5月7号,所以随机数种子设置为20190507,方便结果重现,否则每次运行一遍程序,抽样结果可能不同。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#----------------------------------------------------------------------------#

# 设置随机数种子
set.seed(20190507)

# 同学向量
name = c("克甝", "庞秀萍", "刘琦平", "刘冀", "乌云其其克",
         "蔡青青", "李梦阳", "杨楠楠", "孙昕",  "东木阳子",
         "楚新元", "苏伟修", "吾丽娜", "徐小惠", "左喜梅")

# 对同学随机抽样
name_random = sample(name, size = 15, replace = FALSE)

#----------------------------------------------------------------------------#

# 设置随机数种子
set.seed(20190507) 

# 出现一次的topic
topic1 = c("p104_3", "p127_2", "p127_3", "p145_3", "p183_1")

# 出现两次的topic
topic2 = c("p104_1", "p127_1", "p145_2", "p183_2", "bully")

# topic样本空间
topic = c(topic1, rep(topic2, 2))

# topic随机抽样
topic_random = sample(topic, size = 15, replace = FALSE)

#----------------------------------------------------------------------------#

# 合并结果
result = data.frame(name_random, topic_random)

# 显示结果
print(result)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
##    name_random topic_random
## 1         孙昕       p183_2
## 2       杨楠楠       p145_2
## 3       左喜梅        bully
## 4       蔡青青       p104_1
## 5         刘冀       p145_3
## 6       李梦阳       p127_1
## 7   乌云其其克       p183_1
## 8     东木阳子        bully
## 9       苏伟修       p127_1
## 10      徐小惠       p183_2
## 11      庞秀萍       p127_2
## 12      吾丽娜       p145_2
## 13      楚新元       p104_1
## 14        克甝       p104_3
## 15      刘琦平       p127_3