楼主: syg521hm
1279 8

[问答] 请教R随机分布 [推广有奖]

  • 1关注
  • 1粉丝

大专生

15%

还不是VIP/贵宾

-

威望
0
论坛币
6102 个
通用积分
1.0652
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
230 点
帖子
19
精华
0
在线时间
48 小时
注册时间
2015-11-7
最后登录
2023-5-13

5论坛币
    请教下随机分布的问题,具体如下:
    比如有两个数字1和2,然后让其随机分布在一个8*8的网格内,具体分布如1221、1122、2121、2211、1212等,具体数字可以重复出现,但是要求完全随机分布,这个如何编写,求大神指点,谢谢

最佳答案

jinkelazzz 查看完整内容

> s m m [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,] 2 1 2 1 2 1 1 1 [2,] 2 1 2 1 1 1 2 1 [3,] 2 2 1 2 1 1 2 2 [4,] 2 2 1 1 2 2 1 2 [5,] 2 1 1 2 2 1 1 2 [6,] 1 2 2 2 1 2 1 1 [7,] 2 2 1 2 2 1 2 1 [8,] 2 1 1 ...
关键词:随机分布
沙发
jinkelazzz 发表于 2018-3-1 16:05:14 |只看作者 |坛友微信交流群
> s <- c(rep(1,32), rep(2, 32))
> m <- matrix(sample(s,64), 8, 8)
> m
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    2    1    2    1    2    1    1    1
[2,]    2    1    2    1    1    1    2    1
[3,]    2    2    1    2    1    1    2    2
[4,]    2    2    1    1    2    2    1    2
[5,]    2    1    1    2    2    1    1    2
[6,]    1    2    2    2    1    2    1    1
[7,]    2    2    1    2    2    1    2    1
[8,]    2    1    1    1    1    2    2    1
已有 1 人评分热心指数 收起 理由
菊花冰糖水 + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

使用道具

  1. a <- sapply(seq(8), function(x){
  2.   sample(c(1,2), replace=TRUE, size=8)
  3. })
复制代码

  1. > a
复制代码


像这样?
已有 1 人评分论坛币 热心指数 收起 理由
cheetahfly + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

使用道具

  1.      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
  2. [1,]    1    2    2    1    2    2    2    1
  3. [2,]    1    1    1    2    1    2    2    2
  4. [3,]    1    2    2    2    2    2    1    1
  5. [4,]    2    2    2    2    2    2    1    1
  6. [5,]    2    2    2    2    2    1    2    1
  7. [6,]    2    1    1    2    2    2    1    2
  8. [7,]    2    1    1    2    2    2    2    1
  9. [8,]    1    1    2    2    2    1    2    2
复制代码

使用道具

报纸
syg521hm 发表于 2018-3-1 17:55:27 |只看作者 |坛友微信交流群
菊花冰糖水 发表于 2018-3-1 16:29
像这样?
每个数字出现是次数是相等的,如何补充代码?谢谢

使用道具

syg521hm 发表于 2018-3-1 17:55
每个数字出现是次数是相等的,如何补充代码?谢谢
可以在帮助页面查看 sample的帮助页面,里面有 prob=的参数,设置1,和2出现的概率,所以可以写为
prob=c(0.5,0.5)试一下。不过这个方法也不是保证你一定获得均衡的 matrix。本办法可以 set.seed()多试试几遍。

使用道具

7
syg521hm 发表于 2018-3-3 09:04:23 |只看作者 |坛友微信交流群
jinkelazzz 发表于 2018-3-1 16:05
> s  m  m
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    2    1    2    1    2    1    1     ...
可以再请教下如何设置重复随机的次数?还有就是取样数比较多的情况下,如何设置?谢谢

使用道具

8
jinkelazzz 发表于 2018-3-5 09:26:17 |只看作者 |坛友微信交流群
syg521hm 发表于 2018-3-3 09:04
可以再请教下如何设置重复随机的次数?还有就是取样数比较多的情况下,如何设置?谢谢
次数就是矩阵大小。样本就是s。

使用道具

9
syg521hm 发表于 2018-3-5 09:36:45 |只看作者 |坛友微信交流群
jinkelazzz 发表于 2018-3-5 09:26
次数就是矩阵大小。样本就是s。
比如5*5的矩阵,想重复6次,矩阵改成5*30?就是重复6次了?

使用道具

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

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

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

GMT+8, 2024-11-23 21:41